【Python】面倒くさがり屋のための自動アイキャッチ作成【Pillow】

thumbnail for this post

ブログのアイキャッチ作成って面倒ですよね。いっそのこと「文字だけのブログ」にしたいくらい。
ここはプログラマーらしく自動化しちゃいましょう。

やることは画像に文字を入れるだけ

タイトルに偽りありじゃない?

PythonライブラリPillow

今回、作るのは単純です。Pythonの画像ライブラリPillowを使って

  • バックグラウンド画像読み込み
  • テキスト埋め込み
  • 画像書き出し

サンプルコードは一番単純な形にしていますが工夫次第でCanvaを超えられるかもしれません。(嘘)

サンプルスクリプト

事前にPillowライブラリを以下のコマンドでインストールしておいてください。

$ pip install Pillow
また、お好みのtruetypeフォント(.ttf)を準備してください。
Windowsの場合はc:\Windows\Fonts\フォルダ内に標準のものが入っています。
(参考:web 2020年用、日本語のフリーフォント418種類のまとめ - コリス)
今回バックグラウンドイメージ(スクリプト内のbg.jpg)としては黒っぽい背景を利用したのでフォントカラーを白くしています。(font_color = (255,255,255,0)のところ)

サンプルスクリプトは以下です。

from PIL import Image, ImageDraw, ImageFont

def make_eye_catch(texts):
    #バックグラウンドイメージ設定
    eye_catch = Image.open("./bg.jpg")
    #フォント指定
    eye_catch_font = ["./meiryob.ttc",66] 
    imagefont=ImageFont.truetype(*eye_catch_font)
    #行間、フォント色
    line_space = 30 
    font_color = (255,255,255,0)
    draw = ImageDraw.Draw(eye_catch)
    #テキストをイメージの真ん中にするための計算
    width,height = draw.textsize(texts,font=imagefont,spacing=line_space)
    left_position = (eye_catch.width - width)/2
    top_position = (eye_catch.height - height)/2
    draw.text((left_position,top_position),texts, font=imagefont, spacing=line_space, align="center", fill=font_color)
    eye_catch.save("eye_catch.jpg",quality=60)

#実行部分
texts = "サンプル\nタイトルです\nどうでしょう?\n\n\n".rstrip('\n')
make_eye_catch(texts)

実行するとeye_catch.jpgが出来上がります。

サンプルアイキャッチ画像

サンプルアイキャッチ

アイキャッチ作成CGI

ちょっといじってCGIにしてみました。
アイキャッチ自動生成ツールβ

アイキャッチ作るのに疲れたときに使ってください

Canva使うからいらないよ

enjoy!

投げ銭していただける場合は、amazonで15円からできます。宛先はheisakuあっとcomichi.comで。

マイナスは入れられないの?

comments powered by Disqus