防止ImageMagick使用索引颜色?

Dis*_*oat 6 png imagemagick mogrify

我有一些透明的PNG图像.但是,每当我在图像上使用ImageMagick进行任何操作(例如裁剪)时,它都会将某些图像更改为"索引"颜色而不是RGB.更改的图像是恰好少于256种颜色的图像,但转换会破坏透明度.

从一些研究中我发现你可以添加一个文件名png32:来强制RGB,但这只适用于使用convert命令,而不是mogrify.

我可以添加-format png32mogrify,但是将所有图像重命名为*.png32.

据说你可以这样做:

mogrify -define png:format=png32 -format png *.png
Run Code Online (Sandbox Code Playgroud)

但它不起作用,图像仍然是索引颜色而不是RGB.如何使用mogrify强制使用PNG32?

Gle*_*son 6

如果您使用的是最新版本的ImageMagick(6.9.1-3或更高版本),那么您的命令应该有效.

如果您像使用-format png32选项那样早期版本将起作用,然后运行脚本将它们重命名为*.png.

根据ImageMagick源代码分发中的ChangeLog,在版本6.7.3-0中将"-define png:format = png32"选项添加到ImageMagick中,但是在6.8.9-0版本中引入了一个错误,导致它出现在某些情况下被忽略; 在版本6.9.1-3中修复了该错误.

因此,您的问题的答案是通过让"mogrify"将输入文件重命名为*.png32,或者将ImageMagick升级到6.9.1-3或更高版本来解决问题.