Apr 28, 2020/mod: May 4,2020 - 2 min read - プログラミング
【Python】面倒くさがり屋のための自動アイキャッチ作成【Pillow】
ブログのアイキャッチ作成って面倒ですよね。いっそのこと「文字だけのブログ」にしたいくらい。
ここはプログラマーらしく自動化しちゃいましょう。
やることは画像に文字を入れるだけ
タイトルに偽りありじゃない?
PythonライブラリPillow
今回、作るのは単純です。Pythonの画像ライブラリPillowを使って
- バックグラウンド画像読み込み
- テキスト埋め込み
- 画像書き出し
サンプルコードは一番単純な形にしていますが工夫次第でCanvaを超えられるかもしれません。(嘘)
サンプルスクリプト
事前にPillowライブラリを以下のコマンドでインストールしておいてください。
$ pip install Pillow
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!
comments powered by Disqus