我有一个批处理脚本,用于将我的PNG-24(带透明度)图像转换为50%和25%的大小(用于移动开发)。通常这些图像中有颜色,但现在我正在尝试转换一张没有颜色的图像,但是ImageMagick会将颜色空间配置文件更改为“Gray”,这会破坏我在使用的3D引擎(Unity)中的图像。
我已经尝试强制它使用TrueColor类型,颜色空间sRGB以及sRGB.icc文件配置文件(包含在OSX中),但它似乎并不关心。它仍然将其更改为Gray。
> 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中查看图像时,它显示使用了Gray色彩配置文件。该图像的外观也明显有很大变化。
我正在使用以下图片: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:就可以解决问题。