2012-05-21 90 views
2

我有一種情況,我需要在JPEG文件之上組合兩個透明層。ImageMagick中的透明PNG和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在黑色的背景。我怎樣才能解決這個問題?

+0

我認爲,既然下面的答案都不被接受,你做了你想要的另一種方式。謹慎分辨這是怎麼回事? – Bonzo

回答

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將被更改爲該位置。