PIL で斜めに黒文字を貼る
必要があって PIL をイジイジしておりました。
で、やってる途中にちょっと詰まったのでメモ。
- やりたいこと
- 元画像に合わせて斜めに黒い文字を貼り付けたい
調べてみたら、黒色を透過して元画像に貼り付ける方法はあったのですが、
それでやると黒い字は貼り付けることが出来ないわけで…。
完全に行き詰って Twitter 上で聞いてみました。
…ものの2分で回答を頂きました。
やってみた。
背景画像は適当に input.png という名前で用意しておきます。
# -*- coding: utf-8 -*- import Image, ImageDraw, ImageFont, ImageFilter # 背景画像を開く img = Image.open("input.png") # フォントセット textFont = ImageFont.truetype("Comic Sans MS.ttf", 24) # テキストを貼り付ける Image を生成 textImg = Image.new("RGBA", (200, 50), (0, 0, 0, 0)) tmpDraw = ImageDraw.Draw(textImg) # 貼り付けるテキスト text = "Sample Text" # 影分を先に貼り付ける tmpDraw.text((12, 2), text, font=textFont, fill="rgb(176, 196, 222)") # 本体文字を貼り付ける tmpDraw.text((10, 0), text, font=textFont, fill="black") # 5 度傾ける textImg = textImg.rotate(5) # 背景画像に貼り付ける img.paste(textImg, (60, 50), textImg) # 画像保存 img.save("output.png")
その他メモ。
- フォントは適当に ttf ファイルを持ってきた(けどまだマシな方法ありそう
- テキストを貼り付ける Image は "RGBA" でないと透過されない
- 影は無くても良いかな…w
しみずかわ先生に感謝。