阻止 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 或更高版本。
我有一些透明的 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 或更高版本。