【Python】Pillowで画像にテキストを描き込む

Jenkinsさんで定期的にキャプチャして配布してる画像に、文字列で日付やらのデータを描き込む必要がでてきた。なんか楽にやれる方法ねえかなーっ、て所で調べてみたら、Pythonとかで画像処理ができるライブラリが色々とあるらしい。OpenCVが有名だし楽しそうではあったんだけど、導入手順がめんどそうだったので今回はPillowってのでお手軽にやってみる事にした。

もともとはPIL(Python Image Library)っていう画像操作のライブラリが、更新停止に伴って後継になって生まれたのがこやつらしい。はえー。どーでもいいけど、Pillowって日本語で「枕」なのね。

easy_instal pillow

Pythonへのインストールはこげな感じでOK。たぶんpip installでも行ける。


ためしに、こんな画像に文字を描き込んでみよう。
(心の声:いらすとやさん、いつもお世話になっております。)

続いてソースコードをPythonで書き殴る。

# coding: UTF-8

from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont

font_size = 24
font_name = "C:\Windows\Fonts\meiryo.ttc"
src = r"pillow_test_src.png"
dest= r"pillow_test_dest.png"
draw_x = 140
draw_y = 120
text = "うんこ野郎"

image = Image.open(src)
draw = ImageDraw.Draw(image)
font = ImageFont.truetype(font_name, font_size)
draw.text((draw_x, draw_y), text, font=font, fill=(255,0,0,128))
image.save(dest)

フォント指定はttfだとかttcのTrueTypeならなんでもいいと思うのだが、ウインドウズ備え付けのさいつよフォント(※個人の感想です)であるメイリオを使ってみた。文字色(fill)は、赤のアルファ50%を指定。


いい感じに描き込めたゾイ!

このあと、Jenkinsのパイプラインに、画像のキャプチャに成功したら文字列書き込む処理をぶちこんで提供しておいた。いまんところ問題なく動いてそうだ。めでたしめでたし。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)