我有一个批处理脚本,可以将我的 PNG-24(带透明度)图像转换为 50% 和 25% 大小(用于移动开发)。通常这些图像中有颜色,但现在我正在尝试转换没有颜色的图像,并且 ImageMagick 不断将颜色空间配置文件更改为“灰色”,这在我正在使用的 3d 引擎(Unity)中弄乱了我的图像。
我曾尝试强制它使用 TrueColor 类型、色彩空间 sRGB 和 sRGB.icc 配置文件(OSX 中包含的配置文件),但它似乎并不在意。它仍然将其更改为灰色。
> convert old.png -profile srgb.icc -colorspace sRGB -type TrueColor new.png
> identify *.png
old.png PNG 140x140 140x140+0+0 8-bit sRGB 3.68KB 0.000u 0:00.000
new.png PNG 140x140 140x140+0+0 8-bit sRGB 256c 2.33KB 0.000u 0:00.000
ImageMagick 仍然将其识别为 8 位 sRGB 图像,但它在其后加上“256c”,我假设这意味着它已将其减少到 256 种颜色,我也不想要。当我在 OSX Preview.app 中查看图像时,它说它使用的是灰色颜色配置文件。该图像在视觉上看起来也有很大不同。
这是我正在使用的图像:https ://dl.dropbox.com/u/59304/old.png
这里有一个重复的问题,ImageMagick Reduces Colorspace to Gray,但答案对我不起作用,不幸的是,我没有足够的声誉来评论他的答案。我想我的情况有所不同,因为我使用的是 PNG 而不是 JPG。
Version: ImageMagick 6.8.0-7 2013-01-02 Q16 http://www.imagemagick.org
Features: OpenCL
编辑-阅读答案之一中指定的 ImageMagick 论坛后,看起来只是在输出文件中添加 PNG32: 或 PNG24: 即可解决问题。