我有一个带有alpha通道(即透明度)的PNG图像,我需要创建与图像层组合到白色背景的版本。我想使用一个可脚本化的命令,使用一个CLI工具,如Image Magick,直接将PNG无损地转换为PNG。
导致错误的Image Magick命令的一个例子是:
convert input.png -background white -flatten output.png
我有一个带有alpha通道(即透明度)的PNG图像,我需要创建与图像层组合到白色背景的版本。我想使用一个可脚本化的命令,使用一个CLI工具,如Image Magick,直接将PNG无损地转换为PNG。
导致错误的Image Magick命令的一个例子是:
convert input.png -background white -flatten output.png
当前回答
使用-flatten让我完全抓狂,因为-flatten与mogrify crop和resizing结合在一起根本不起作用。官方和对我来说唯一正确的方法是“删除”alpha通道。
-alpha remove -alpha off (JPG不需要)
参见文档:http://www.imagemagick.org/Usage/masking/#remove
其他回答
这是我的工作:
magick convert OLD.png -background white -alpha remove NEW.png
下面是一个带有透明背景的初始图像,以防它有助于测试:
此外,对于PC上的一次性,你可以在Windows Paint中打开PNG文件,然后单击保存。这将自动将透明变成不透明的白色。
这对我来说很管用:
convert -flatten img1.png img1-white.png
文档引用:
-flatten命令行选项 -layers命令行选项(-flatten等价于-layers flatten)
-background white -alpha remove -alpha off
例子:
convert image.png -background white -alpha remove -alpha off white.png
你可以随意用其他颜色替换白色。Imagemagick文档是这样描述-alpha remove操作的:
这个操作简单快捷,不需要就能完成工作 任何额外的内存使用,或其他可能相关的副作用 与替代透明去除技术。这就是 删除图像透明度的首选方式。
是-alpha off,不是-alpha remove!iOS应用商店上传失败时,有一个alpha频道在任何图标!!
以下是如何做到这一点: Mogrify -alpha off *.png
我需要-alpha background和-flatten,或者-fill。
我制作了一个新的PNG,背景透明,中间有一个红点。
Convert image.png -background green -alpha off green.png失败:它生成了一个黑色背景的图像
Convert image.png -background green -alpha background -flatten green.png生成一个具有正确绿色背景的图像。
当然,对于另一个我重命名为image.png的文件,它什么都没做。对于那个文件,我发现透明像素的颜色是“#d5d5d5”,所以我用绿色填充该颜色:
Convert image.png -fill green -opaque "#d5d5d5" green.png将透明像素替换为正确的绿色。