我有一个带有alpha通道(即透明度)的PNG图像,我需要创建与图像层组合到白色背景的版本。我想使用一个可脚本化的命令,使用一个CLI工具,如Image Magick,直接将PNG无损地转换为PNG。

导致错误的Image Magick命令的一个例子是:

convert input.png -background white -flatten output.png

当前回答

Welp看起来我决定安装“图形魔法”而不是“图像魔法”有一些粗糙的边缘-当我重新安装真正复杂的旧“图像魔法”时,上面的命令工作得很好。

编辑,很长一段时间后-有一天我会检查看看“图形魔法”是否已经解决了这个问题。

其他回答

这就创建了一个图像,只是将第一个透明的图像放在第二个上面

composite -gravity center ImgWithTransp.png BackgroundSameSizeOfImg.png ResultImg.png

最初是在这个帖子上发现的提示

这不是你问题的确切答案,但我在试图弄清楚如何删除alpha通道时发现了你的问题,所以我决定在这里添加这个答案:

如果你想使用imagemagick删除alpha通道,你可以使用这个命令:

mogrify -alpha off ./*.png

扁平化图像和应用背景图像是直接的ImageMagick

然而,命令的顺序非常重要

要在透明图像上应用任何背景并将其压平,首先应用背景然后将其压平。反过来就不管用了。

$ convert sourceimage.png -background BackgroundColor -flatten destinationimage.png

是-alpha off,不是-alpha remove!iOS应用商店上传失败时,有一个alpha频道在任何图标!!

以下是如何做到这一点: Mogrify -alpha off *.png

使用-flatten让我完全抓狂,因为-flatten与mogrify crop和resizing结合在一起根本不起作用。官方和对我来说唯一正确的方法是“删除”alpha通道。

-alpha remove -alpha off (JPG不需要)

参见文档:http://www.imagemagick.org/Usage/masking/#remove