阻止 ImageMagick 使用索引颜色?

Prevent ImageMagick from using indexed colors?

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

根据一些研究,我发现您可以在文件名前加上 png32: 以强制使用 RGB,但这仅在使用 convert 命令时有效,而不是 mogrify.

我可以使用 mogrify 添加 -format png32,但这会将所有图像重命名为 *.png32

假设你可以这样做:

mogrify -define png:format=png32 -format png *.png

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

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

如果您像以前一样使用 -format png32 选项,那么早期版本将可以工作,然后 运行 一个脚本将它们重命名回 *.png。

根据the ImageMagick 6 change log,“-define png:format=png32”选项在6.7.3-0版本添加到ImageMagick,但在6.8.9-0版本引入了一个错误这导致它在某些情况下被忽略;该错误已在版本 6.9.1-3 中修复。

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