Pillowを使って画像を描画する方法
画像を描画して保存
Pythonで画像に矩形や文字を描画するためには、一般的にPillow(Python Imaging Library, PIL)というライブラリを使用します。
以下で、Pillowを使って画像に矩形と文字を描画する基本的な方法を紹介します。
インストール
pip install pillow
新規画像として描画する
矩形を描画する
from PIL import Image, ImageDraw
# 画像生成
width, height = 200, 200
image = Image.new("RGB", (width, height), "red")
# 描画オブジェクトの作成
draw = ImageDraw.Draw(image)
# 矩形を描画
draw.rectangle([50, 50, 150, 150], fill="white")
image.save("rectangel.jpg")
矩形は[left, top, right, bottom]
または、[(left, top), (right, bottom)]
で指定します。
image.save()
メソッドは画像を保存します。
文字を描画する
from PIL import Image, ImageDraw, ImageFont
# 画像生成
width, height = 200, 200
image = Image.new("RGB", (width, height), "red")
# 描画オブジェクトの作成
draw = ImageDraw.Draw(image)
# フォントの設定
font = ImageFont.truetype("NotoSansCJK-Regular.ttc", size=36)
# 文字を描画
draw.text((10, 10), "Danger!!", fill="white", font=font)
image.save("string.jpg")
Ubuntuの場合、利用できるフォントはfc-list
コマンドで確認できます。
画像の上に描画する
from PIL import Image, ImageDraw, ImageFont
# 画像読み込み
image = Image.open("sample.jpg")
# 描画オブジェクトの作成
draw = ImageDraw.Draw(image)
draw.rectangle([(500, 100), (1000, 400)], outline="red", width=2)
# フォントの設定
font = ImageFont.truetype("NotoSansCJK-Regular.ttc", size=36)
# 文字を描画
draw.text((510, 110), "Danger!!", fill="red", font=font)
image.save("draw-image.jpg")