Kinaconの技術ブログ

Ubuntuはじめました。

OpenCVではてなブログのアイコンを作る

f:id:m-oota-711:20181226102811j:plain
ブログアイコンを作り直しました。解像度アップ。

ブログアイコンについて

ブログアイコン(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)

f:id:m-oota-711:20181226103120p:plain

PILのインストール

pip3 install pillow

動作確認(PIL)

f:id:m-oota-711:20181226103144p:plain

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 をクリック

以上。