从其他Png中减去Png,保持透明度,ImageMagick

时间:2017-05-18 21:54:39

标签: php image-processing imagemagick

我想从 main.png 中减去png mask.png ,同时保持 main.png 的透明度

main.png

enter image description here

mask.png

enter image description here

main.png

mask.png

enter image description here

output.png

enter image description here

我在SO Cut any shape from image ( Imagik/Gd)上发现了这个问题但是在JPEG图像上没有png,因为它设置了黑色背景。

到目前为止,我已经提出了这个代码但是我无法获得我想要的输出

exec('convert "main.png" "mask.png" -geometry (+230+40) -compose copyopacity -composite 
-fuzz 1% -trim "output.png"');

它为我输出

enter image description here

我希望黑色部分透明,因为它来自 main.png

我也尝试了这些但没有用

exec('convert "main.png" "mask.png" -geometry (+230+40) -fuzz 5% -transparent white 
"output.png"');

以下是我的mask.pngmain.png

More info

这是最终在@ fmw42

的帮助下工作的代码
 exec('convert "main.png" "mask.png" -background none -geometry (+230+40) -compose dstin -composite -fuzz 1% -trim "output.png"');

1 个答案:

答案 0 :(得分:1)

使用ImageMagick 6.9.8.5 Q16,我得到(取决于修剪):

customerID

enter image description here

convert main.png mask.png -background none -gravity center -geometry +0-17 -compose dstin -composite result1.png

enter image description here

请参阅http://www.imagemagick.org/Usage/compose/

以上是你想要的吗?

注意:您的两张图片尺寸不同。面具较小。因此,您需要将其放置(-geometry)以获得所需的结果。