いぬおさんのおもしろ数学実験室

おいしい紅茶でも飲みながら数学、物理、工学、プログラミング、そして読書を楽しみましょう

画像に好きなフォントで字を書く

 必要があって調べ、うまくいったので記録しておきます。画像の好きな位置に好きなフォントで字を書く方法です。Pythonの画像処理ライブラリ、Pillow(PIL)がインストールされていることが必要です。
 デスクトップに使いたいフォントのファイルを置いておいてください。理由は分からないのですが、Windows\Fontsに入ったままだとうまくいきませんでした。「myfont =」の行がフォントの指定です。
 コード中の「xxxxx」はユーザ名です。「C:\\Users\\xxxxx\\Desktop」がデスクトップのパスです。デスクトップ上のsource.pngに好きなフォントで字を書き、それをsaveGazou.pngに保存します。元の画像、source.pngに変化はありません。こちらの環境では「konnnitiha」を日本語「今日は」にしても無事に書き込まれます。

 たくさんの画像にページを打ちたくて、その方法を調べていてこれにたどり着きました。

#==================
from PIL import Image, ImageDraw, ImageFont
myfont = ImageFont.truetype('C:\\Users\\xxxxx\\Desktop\\mplus-1p-black.ttf', 128)
gazou = Image.open('C:\\Users\\xxxxx\\Desktop\\source.png')
draw = ImageDraw.Draw(gazou)
draw.text((50, 50), 'konnnitiha', fill = 'white', font = myfont)
gazou.save('C:\\Users\\xxxxx\\Desktop\\saveGazou.png')
#==================