↓もし、良かったらSNSでの紹介よろしくお願いします。

Pythonで画像に日本語文字を入れる。

bootstrap

Pythonで画像に日本語を入れる。

本記事ではPythonで画像に文字を入れる方法とサンプルコードを紹介します。

Pythonで画像に文字を入れる場合、画像処理系ライブラリを使う必要があります。

本ブログではOpenCVを取り上げていたので、最初はOpenCVでやろうとしました。

しかし、OpenCVは日本語文字入れに対応していないのでpillowでやることにしました。

今回紹介する関数で、アイキャッチ画像生成ツールを作ることができます。

https://www.tech-tech.xyz/archives/icatch.html

pillowを使う

pillowはPILの後継ライブラリ

pillow(PIL)はPython Imaging Library (PIL)の後継ライブラリです。
どっちも略称はPILです。

Python Imaging LibraryはPython2系ではメジャーなライブラリでした。

しかし、Python Imaging LibraryはPython3には対応しておらず、
開発が停まっているのでpillowを使いましょう。

pillowはPython2系にも対応しています。

pillowをインストール

pipでインストールできます。

pip install pillow

実行結果の説明

サンプルコード(drawText.py)の前に簡単に実行結果について説明します。

コードと同じディレクトリにcat.jpgという画像を用意します。
この画像が文字を入れる画像になります。

python drawText.py

とサンプルコードを実行すると、cat_text.jpgという
「吾輩は猫である。(改行) 名前はまだ無い。」
という文字の入ったファイルが生成されます。

サンプルコード

from PIL import Image, ImageDraw, ImageFont
#画像の読み込み
img = Image.open("cat.jpg")
#drawインスタンスを生成
draw = ImageDraw.Draw(img)
#フォントの設定(フォントファイルのパスと文字の大きさ)
font = ImageFont.truetype("C:\Windows\Fonts\meiryob.ttc", 27)
#文字を書く
draw.text((10, 10), u'吾輩は猫である。', fill=(255, 0, 0), font=font)
#改行できる
draw.text((10, 10), u'\n名前はまだ無い。', fill=(0, 0, 255), font=font)
img.save("cat_text.jpg")

draw.textの説明

文字描画関数であるDrawインスタンスのtextメソッドに付いて簡単にまとめておきます。

Draw.text(position, message, fill, font)

  • position:文字を書く場所を(x,y)で指定
  • message:書く文字
  • fill:文字の色をRBG形式で指定
  • font:フォントを指定