如何在GraphicsMagick中使用“-compose”和“-flatten”保持透明度

5
我有一系列带有透明背景的PNG图像,我想将它们覆盖到一个同样具有透明背景的PNG目标图像上。假设这些序列图像如下:
  • 源图像: img1.png、img2.png、img3.png。
  • 目标图像: dest.png。
由于我想同时叠加所有图像,我将使用以下带有compose开关的convert命令:
gm convert -compose Atop dest.png img1.png img2.png img3.png -flatten output.png

看起来很简单,但问题在于 output.png 丢失了透明度,我不知道如何保持它的透明度。如果我使用 -background 开关,可以将曾经的透明度设置为任何颜色,但我无法使其恢复为透明度。

是的,我随后可以调用:

gm convert -transparency black ouput.png output2.png

但是,实际图像中的任何黑色区域也会变为透明。

这里需要帮助吗?

1个回答

4

我遇到了同样的问题,我做了几件事情来解决它。

如果你将命令更改为以下内容,应该能够得到你想要的结果:

gm convert xc:transparent -compose Over img1.png img2.png img3.png -mosaic dest.png

根据您期望从compose方法中获得的功能,您可能需要使用AtopOver

使用mosaic代替flatten并结合xc:transparent参数可以保留透明度,并生成带有透明度的图像。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接