pythonで画像編集

pythonで画像合成を行う場合pillowとうモジュールが楽だった。 ※Pillowは、Pythonの画像処理ライブラリで、Python Imaging Library (PIL)のforkプロジェクトです。 まあPILからして知らないわけですが。。。。

pip install pillow

でモジュールの追加!!

画像合成

layer1 = Image.open( 'image1.png' )
layer2 = Image.open( 'image2.png' )

layer1.paste( layer2, ( 0, 0 ), layer2 )

Image.openで画像を読み込む→Image.pasteで指定した画像を上に貼り付けることができる。 第2引数は座標を指定してやる、第3引数のmaskはいまいちわからないのでひとまず無視。

これで画像の合成事態は出来るのだがアルファ情報を持っている画像をpasteで合成する場合完全に上書きされているのがアルファが変な結果になって期待通りの合算を行ってくれなかった。

アルファ付きの画像合成

layer1 = Image.open( 'image1.png' )
layer2 = Image.open( 'image2.png' )

result = Image.alpha_composite( layer1, layer2 )

とやることで期待通りの結果になってくれた。

画像の保存

上記の方法で画像を作成しても結局保存出来なければ何も意味がないわけで画像を保存する場合

layer1 = Image.open( 'image1.png' )
layer2 = Image.open( 'image2.png' )

result = Image.alpha_composite( layer1, layer2 )
result.save( 'output.png' )

Image.save( 保存ファイル名 )とすれば保存を行える。

その他

機能的には他にもピクセル操作、リサイズ、回転などいろいろなことができるので結構便利そう コレ使えば設定ファイルと連携しての画像合成ツールとして優秀なのが作れそうで少し楽しみ