web-dev-qa-db-ja.com

imagemagickで透明度のある2つの画像をマージする

透明度のない2つの画像(2枚の写真)があり、これらの画像を1つの画像に結合して、最初の画像が2番目の画像をカバーするようにします。これらの画像を同じサイズに拡大縮小し、以下の例のように透明度とマージするにはどうすればよいですか?

example result

5
tiimowad

Imagemagickは、多くのオプションを備えた複雑なツールです。
[。複雑なコマンドラインを犠牲にして実行できるすべてのアクション。

簡単にするために、2つの画像の準備ができたとしましょう。それを見てください [ 1 ]、[ 2 ] それがどのように機能するかをよりよく理解するために。 2番目のリファレンス [ 2 ]Imagemagickから2つの画像を追加で使用できるメソッドについて、例から推測できます。

おそらく-dissolve [] または -blend [ 4 ] オプションはあなたが探しているものです:

composite -dissolve 50 -gravity Center a.jpg b.jpg -alpha Set result.jpg

それを行う別の方法は [ 5 ]

convert FUfstEv.jpg  \
\( ChYNTch.jpg -alpha set -channel a -evaluate set 50% +channel \) \
-gravity center -compose over -composite result1.jpg

必要に応じて、画像を拡大縮小するために追加の操作を追加する必要がある場合があります...追加の参照としてあなたが見ることができます [ n ]。このページをもう一度見る [ 5 ] いくつかの例について。

一般に、dissolveオプションの構文は次のようになります。

複合-dissolve {argument} -gravity Center \
1.gif 2.gif -alpha Set {result}

8
Hastur