メモ書き:PIL

使うときにまた書き足します。
正直どう整理すればいいのか見当がつかない。完全に箇条書きのようなメモです。

from PIL import Image, ImageDraw, ImageFont
W = 1920
H = 1080
im = Image.new("RGB", (W, H), (0, 0, 0))
draw = ImageDraw.Draw(im)

#線を引く
draw.line((始点W, 始点H, 終点W, 終点H), fill=(赤,緑,青), width=線の太さ)

#長方形
draw.rectangle((始点W, 始点H, 終点W, 終点H), fill=(赤,緑,青)

#文字を書き込むA
font = ImageFont.truetype('TTFフォントのパス.ttf', フォントサイズ)
draw.multiline_text((左上を始点としたW, 左上を始点としたH), '文字を書き込む', fill=(赤,緑,青), font=font)

#文字を書き込むB
font = ImageFont.truetype('TTFフォントのパス.ttf', フォントサイズ)
draw.text((左上を始点としたW, 左上を始点としたH), "文字を書き込む", fill=(赤,緑,青), font=font)

#テキスト領域サイズの取得
font = ImageFont.truetype('TTFフォントのパス.ttf', フォントサイズ)
size = draw.textsize("文字を書き込む", font=font)
###なお、PIL.ImageDraw.textlength()などもある。
  • 基本的に(横軸,縦軸)だった気がする。上のコードのWはwidth,Hはheightを基に横軸、縦軸を指しているつもり。
  • 赤緑青もRGBの0~255のアレ
  • Image.new()で新規作成
  • 線を引く・長方形・文字の書込みについては上のコード見て察して


今後追記するかもしれないこと

  • draw = ImageDraw.Draw()でなんか編集可能にする的な(?)
  • multiline_textとtextの違いに関して詳しいこと書いといて
  • PIL.ImageDraw.textbox()