OpenCVではてなブログのアイコンを作る
ブログアイコンを作り直しました。解像度アップ。
ブログアイコンについて
ブログアイコン(favicon)を高精細ディスプレイに対応するなど、見やすく表示されるようにしました - はてなブログ開発ブログ
作成環境の構築
【作業環境】
Ubuntu 18.04.1 LTS (Bionic Beaver)
python 3.6.7
pythonのパッケージ管理ソフトPIPをインストール
sudo apt install -y python3-pip pip3 install --upgrade pip
OpenCVのインストール
pip3 install opencv-python
動作確認(OpenCV)
PILのインストール
pip3 install pillow
動作確認(PIL)
PILを使用する理由
OpenCVでひらがなの描画ができなかった
日本語のフォントをダウンロード
Ubuntuにひらがなで理想的なフォントがなかった
フォントのダウンロード
以下のサイトより、源の角ゴシックLをダウンロードしています。
源柔ゴシック (げんじゅうゴシック) | 自家製フォント工房
コード
PILで日本語を入力するところは以下のサイト参考にしました。
【OpenCV】【Python】画像上に日本語のテキストを描画 - Qiita
ブログアイコンの作成
スマートフォン(iPhone、Android)の
ホーム画面のショートカットは192×192になるらしい
192×192で作りました。
(cv2.resizeでサイズは変えられる)
#!/usr/bin/env/ python3 import cv2 import numpy as np from PIL import ImageFont, ImageDraw, Image def put_jtext(bgr_img, text, point, font_size, color): # 日本語フォントを画像に描画する font_path = "/home/kinacon/Downloads/GenJyuuGothicL-Bold.ttf" font = ImageFont.truetype(font_path, font_size) #PILはRGBで処理 color_rgb = color[-1::-1] rgb_img = cv2.cvtColor(bgr_img, cv2.COLOR_BGR2RGB) pil_img = Image.fromarray(rgb_img) draw = ImageDraw.Draw(pil_img) draw.text(point, text, fill=color_rgb, font=font) rgb_img = np.asarray(pil_img) bgr_img = cv2.cvtColor(rgb_img, cv2.COLOR_RGB2BGR) return bgr_img # ベース画像を作成 width = 360 height = 360 base_img = np.zeros((height, width, 3), np.uint8) # デザイン # 背景を黄色にする(BGRで設定) color = (0,255,255); # 黃 base_img[:] = tuple(color) # 文字を書く text1 = u"きな" text2 = u"こ" point1 = (width/2-140,height/2-140) point2 = (width/2-70,height/2-20) red = (0, 0, 255) #赤 font_size = 140 dst_img1 = put_jtext(base_img, text1, point1, font_size, red) dst_img2 = put_jtext(dst_img1, text2, point2, font_size, red) # 円を書く center = (int(width/2), int(height/2)) cv2.circle(dst_img2, center, 160, red, 20) # リサイズする size = (194,194) dst = cv2.resize(dst_img2,size) cv2.imwrite('favicon_194.jpg', dst)
はてなブログでブログアイコンコンを設定
- Settings を開く
- Blog icon に 参照 ボタンで画像を設定
- 左下の Update をクリック
以上。