画像にキラキラした文字を入れる
画像にキラキラした文字を入れます。
PillowのImage.compositeを使うと2つの画像をマスク画像に応じて合成することができます。マスク画像が白黒の2色の場合、マスク画像の白い部分には1つ目の画像、マスク画像の黒い部分は2つ目の画像がコピーされ合成画像ができます。
マスク画像を白い文字で作り、1つ目の画像にキラキラの画像を使うことで白い文字の部分がキラキラに置き換わります。
関連記事
フォルダ内の画像ファイルにウォーターマーク(すかし)をつける
環境
- windows10 home
- jupyter notebook 6.3.0
- Python 3.8.8
- Pillow 8.2.0
準備
画像ファイルはフリー写真素材ぱくたそから2つの画像をダウンロードさせていただき、jupyter notebookファイル(.ipynb)と同じディレクトリに、ファイル名'kirakira.jpg','santa.jpg'で保存しました。
kirakira.jpg
santa.jpg
コード
マスク画像として黒字に白文字の'Merry Xmas'を描きキラキラ画像im1として文字の部分に、女の子の画像をim2として文字以外の部分に合成します。
from PIL import Image, ImageDraw, ImageFont im1 = Image.open('kirakira.jpg') im2 = Image.open('santa.jpg') mask = Image.new('L', im1.size, 0) fnt = ImageFont.truetype('C:\Windows\Fonts\impact.ttf', 120) d = ImageDraw.Draw(mask) d.text((15,240), 'Merry Xmas', font=fnt, fill=255) im = Image.composite(im1, im2, mask) im.save('xmas.jpg')
実行結果
女の子の写真に'Merry Xmas'のキラキラ文字が描画されました。
以下のサイトを参考にさせていただきました
note.nkmk.me >> Python, Pillowで二枚の画像をマスク画像に従って合成