我有一个带有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
当前回答
都试过了,没有一个成功。这一个做到了:
convert input.png -channel rgba -alpha set \
-fill none -opaque white \
-fill white -opaque black \
-fill white -opaque none \
-alpha off output.png
其他回答
使用-flatten让我完全抓狂,因为-flatten与mogrify crop和resizing结合在一起根本不起作用。官方和对我来说唯一正确的方法是“删除”alpha通道。
-alpha remove -alpha off (JPG不需要)
参见文档:http://www.imagemagick.org/Usage/masking/#remove
看起来你的命令是正确的,所以问题可能是由于缺少对PNG()的支持。你可以用convert -list配置来检查,或者试试下面的命令:
sudo yum install libpng libpng-devel
我看到了这个问题和答案,这真的帮助了我,但后来我需要为很多文件这样做,所以如果你有多个图像(PNG图像)在一个文件夹,你想为所有:
find ./ -name "*.png" -exec convert {} -flatten {} \;
都试过了,没有一个成功。这一个做到了:
convert input.png -channel rgba -alpha set \
-fill none -opaque white \
-fill white -opaque black \
-fill white -opaque none \
-alpha off output.png
下面是如何将一个目录中所有文件夹中的相同图像替换为白色而不是透明的:
Mogrify -background white -flatten */*.png