ImageMagick中的透明PNG和JPEG组合

ImageMagick中的透明PNG和JPEG组合,imagemagick,Imagemagick,我有一个例子,我需要在JPEG文件的上面组合两个透明层 下面是一个示例设置: 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.p

我有一个例子,我需要在JPEG文件的上面组合两个透明层

下面是一个示例设置:

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出现在黑色背景上。如何修复此问题?

我无法使
复合
工作,但
转换
工作:

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

进一步阅读:

我目前无法测试这一点,但您可以使用层合并,并且应该能够在代码中使用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将被更改为位置。

我假设,由于以下两个答案都未被接受,您以另一种方式做了自己想做的事情。能告诉我是怎么回事吗?