画像の隅とかに透過PNGを重ねてサインを入れたいということがあったのでPythonで出来るようにした時のメモ。
他にもクリップボードの画像データを画像ファイルとして保存したりしてるので気になる方はこちらもどうぞ、
[Python] クリップボードの画像をファイルに保存してみた
自分はよく「Windowsキー + Shiftキー + Sキー」で領域選択してスクリーンショットを撮っている。そこからペイントとかに貼り付けて画像ファイルとして保存というステッ…
目次
Pillowのインストール
PIL(Pillow)という画像処理ライブラリを使っている。
インストールのコマンドはこんな感じ、
pip install Pillow
コード
import sys
import os
from PIL import Image
if (len(sys.argv) < 2): exit()
py_dir = os.path.dirname(__file__)
sigh_path = 'signeture.png' # 合成する透過画像のパス
image_list = sys.argv[1:]
for base_path in image_list:
# 元画像のファイル名を利用して保存用のファイル名を作成
base_dir = os.path.dirname(base_path)
base_filename = os.path.basename(base_path).split('.')[-2]
save_name = os.path.join(py_dir, f'{base_filename}_signed.png')
# 画像を開く
img_base = Image.open(base_path)
img_sign = Image.open(sigh_path)
# png画像を元画像に貼り付けて別名で保存
img_base.paste(img_sign, (15, 15), img_sign)
img_base.save(save_name)
img_base.paste(img_sign, (15, 15), img_sign)の(15, 15)の部分が元画像の左上からの座標なので必要に応じて変更すれば好きな位置に合成できる。
このPythonファイルと同じフォルダに合成するPNG画像をsigneture.pngという名前で入れておいて、合成したい画像をPythonファイルにドラッグ&ドロップすると合成された画像ファイルが同じフォルダに作成される。
コメント