如何在GraphicsMagick上保持"-compose"和"-flatten"的透明度

Hoh*_*714 5 graphicsmagick

我有一系列具有透明背景的PNG图像,我想要覆盖到目标PNG图像上,该图像也具有透明背景.为了论证,我们可以说这一系列图像是:

  • 图片来源:img1.png,img2.png,img3.png
  • 目标图片:dest.png.

由于我想一次覆盖所有图像,我将使用该convert命令,compose交换机如下:

gm convert -compose Atop dest.png img1.png img2.png img3.png -flatten output.png
Run Code Online (Sandbox Code Playgroud)

看起来很简单,但问题是output.png失去了它的透明度,我不知道如何保持它的启用.如果我使用-background开关,我可以设置我想要的任何颜色的透明度,但我不能让它回到透明度.

是的,我随后可以致电:

gm convert -transparency black ouput.png output2.png
Run Code Online (Sandbox Code Playgroud)

但是实际图像上的任何黑色也会变得透明.

这里有什么帮助?

Pin*_*hio 4

我遇到了同样的问题,我做了一些事情来让它发挥作用。

如果您将命令更改为:您应该得到您想要的结果:

gm convert xc:transparent -compose Over img1.png img2.png img3.png -mosaic dest.png
Run Code Online (Sandbox Code Playgroud)

您可能需要根据您想要从 compose 方法中获得的功能Atop来使用。Over

使用mosaic而不是flatten与参数结合使用xc:transparent会导致它保留透明度并生成具有透明度的图像。