摘自网上的一段话
也许它们是:
1.具有嵌入式配置文件的CMYK。
2. CMYK,没有嵌入式配置文件。
(1)可以使用“ -profile sRGB.icc”而不是“ -colorspace sRGB”或“ -strip”进行转换。
(2)需要猜测,例如分配CMYK配置文件,然后与(1)相同。
也就是说,CMYK 图片分两种情况:
1. 如果这个 CMYK 图片有配置文件(icc profile),在转换成 sRGB时,可以通过 -profile sRGB.icc 来进行色彩我转换。
2. 如果这个 CMYK 图片不带配置文件(icc profile),那就只能先给这个 CMYK 图片指定一个配置文件, 然后再通过 -profile sRGB.icc 来进行色彩我转换,例如使用下面的这个命令:
convert cmyrk.jpg -profile USWebCoatedSWOP.icc -profile sRGB.icc -colorspace sRGB srgb.jpg
---------------------------------------------------
通过 identify.exe -verbose cmyk.jpg 可以查看一个 cmyk 图片是否带有 icc 配置文件。
---------------------------------------------------
注意: 测试的时候发现一个优先级问题:
convert -verbose cmyk3.jpg -profile sRGB.icc -colorspace sRGB rgb3.jpg (这个是想要的效果)
convert -verbose cmyk3.jpg -colorspace sRGB -profile sRGB.icc rgb3.jpg
测试发现, -profile 与 -colorspace 都存在时, -colorspace 需要放在 -profile 后面执行。
---------------------------------------------------
经过查看 ImageMagick 的源代码,证实 MagickGetImageProfile() 的返回值需要 MagickRelinquishMemory() 释放。
原文:https://www.cnblogs.com/personnel/p/13624708.html