Pythonでいろいろやってみる

Pythonを使った画像処理や機械学習などの簡単なプログラムを載せています。

画像にキラキラした文字を入れる

画像にキラキラした文字を入れます。 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
f:id:T_A_T:20211007203621j:plain

santa.jpg
f:id:T_A_T:20211007203637j:plain

コード

マスク画像として黒字に白文字の'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'のキラキラ文字が描画されました。
f:id:T_A_T:20211007203823j:plain

以下のサイトを参考にさせていただきました

note.nkmk.me >> Python, Pillowで二枚の画像をマスク画像に従って合成

ブログランキングに参加しています

にほんブログ村 IT技術ブログへ
にほんブログ村