2

JPEG ファイルの上に 2 つの透明レイヤーを組み合わせる必要がある場合があります。

ここにサンプルセットアップがあります:

wget -O bg.jpg http://www.grahamowengallery.com/photography/Flowers/roadside-flowers.jpg
wget -O layer.png http://www2.picturepush.com/photo/a/6271450/640/TRANSPARENT-EMBELLISHMENTS/pink-flower-transparent-png.png
wget -O logo.png http://upload.wikimedia.org/wikipedia/commons/0/0d/Imagemagick-logo.png

コマンドで目的の結果を得ることができます:

composite bg.jpg \( -compose Overlay layer.png \) bg2.jpg
composite bg2.jpg \( -compose Overlay logo.png \) result.jpg

これでいいのですが、ドライブに bg2.png を書き込むのは避けたいです。

私は試した:

composite bg.jpg \( -compose Overlay layer.png \) \( -compose Overlay logo.png \) result2.jpg

しかし、これは黒い背景のlayer.pngになります。どうすればこれを修正できますか?

4

2 に答える 2

4

私は動作させることができませんでしcompositeたが、convert動作します:

convert.exe bg.jpg layer.png -compose Overlay -composite logo.png -compose Overlay -composite result2.jpg

さらに読む: http://www.imagemagick.org/Usage/compose/

于 2012-05-21T10:23:36.497 に答える
2

現時点ではこれをテストすることはできませんが、レイヤーのマージを使用できる可能性があり、コードで URL を使用できるはずです。

$cmd = "http://www.grahamowengallery.com/photography/Flowers/roadside-flowers.jpg ".
" http://www2.picturepush.com/photo/a/6271450/640/TRANSPARENT-EMBELLISHMENTS/pink-flower-transparent-png.png ".
" http://upload.wikimedia.org/wikipedia/commons/0/0d/Imagemagick-logo.png -layers merge ";
exec(" convert $cmd result.jpg ");

レイヤーにポジショニングを使用していません。後で紹介しますか? その場合は、各画像の前に -page +0+0 を追加して、必要な場所に配置できます。+0+0 は場所に変更されます。

于 2012-05-21T11:47:21.373 に答える