[Python] Pillowを使って透過PNG画像を合成してウォーターマークを入れる

アイキャッチPythonカテゴリ

画像の隅とかに透過PNGを重ねてサインを入れたいということがあったのでPythonで出来るようにした時のメモ。

他にもクリップボードの画像データを画像ファイルとして保存したりしてるので気になる方はこちらもどうぞ、

(スポンサーリンク)
目次

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ファイルにドラッグ&ドロップすると合成された画像ファイルが同じフォルダに作成される。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次