tay*_*0rs 14 imagemagick color-space
我有一个批处理脚本,可以将我的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
Run Code Online (Sandbox Code Playgroud)
ImageMagick仍然将其识别为8位sRGB图像,但它在它之后放置"256c",我假设它意味着它已将它减少到256色,我也不想要.当我在OSX Preview.app中查看图像时,它表示它正在使用灰色配置文件.图像在视觉上看起来也有很多不同.
这是我正在使用的图像:https://dl.dropbox.com/u/59304/old.png
这里有一个重复的问题,ImageMagick将Colorspace缩小为灰色,但答案对我不起作用,遗憾的是我没有足够的声誉评论他的答案.我想我的情况有所不同,因为我使用的是PNG,而不是JPG.
Version: ImageMagick 6.8.0-7 2013-01-02 Q16 http://www.imagemagick.org
Features: OpenCL
Run Code Online (Sandbox Code Playgroud)
编辑 - 在阅读其中一个答案中指定的ImageMagick论坛后,看起来只是将PNG32:或PNG24:添加到输出文件中解决了问题.
fmw*_*w42 10
将灰度 PNG 保持为 RGB 的正确方法是使用 PNG24:result.png
输入:
convert lena.png -colorspace gray PNG24:lenag_rgb.png
identify -verbose lenag_rgb.png
Image: lenag_rgb.png
Format: PNG (Portable Network Graphics)
Mime type: image/png
Class: DirectClass
Geometry: 256x256+0+0
Units: Undefined
Colorspace: sRGB
Type: Grayscale
Run Code Online (Sandbox Code Playgroud)
对于 JPG 和 TIFF 等其他图像格式,请-define colorspace:auto-grayscale=false与-type truecolor.
您可以通过-set colorspace:auto-grayscale offconvert来禁用RGB通道到单个灰度通道的自动转换。
在您提出问题时,此解决方案尚未可用,但已于 2015 年在版本 6.9.2 中引入:
2015-07-25 6.9.2-0 Dirk Lemstra <dirk@lem.....org>
添加-set colorspace:auto-grayscale=false这将阻止支持灰度的编码器内部自动转换为灰度。
| 归档时间: |
|
| 查看次数: |
6951 次 |
| 最近记录: |