ImageMagick 合成两张图片并用原始数据填充透明数据

问题描述

我有两张 256X256 的图片,一张是全紫色背景,另一张是透明的。

我想将第二张图片复制到第一张图片中,以便第二张图片的透明数据被第一张图片的数据填充,结果如下:

我这样做的尝试以整个第一张图像替换为第二张图像而告终。我使用了 OverCompositeOp 运算符:
MagickCompositeImage(wand1,wand2,OverCompositeOp,MagickFalse,0);

解决方法

您可能交换了两个图像。您需要将透明的覆盖在不透明的之上。这假设它们的大小相同。在 ImageMagick 7 命令行中,这工作正常。

magick purple.png blue_transparent.png -compose over -composite result.png

enter image description here

对于 ImageMagick 6,将 magick 替换为 convert