CMYK图片转sRGB时,出现明显的色差的解决方案

参考资料:

https://imagemagick.org/discourse-server/viewtopic.php?t=36184

https://www.imagemagick.org/discourse-server/viewtopic.php?t=16464

https://www.zhihu.com/question/30419311 (各个 CMYK color profile 之间有哪些区别?)

 

摘自网上的一段话

也许它们是:

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() 释放。

 

posted @ 2020-09-07 07:47  personnel  阅读(2267)  评论(0编辑  收藏  举报
友情链接:图片批量处理工具 gif动态图制作工具 制作电子相册 图片排版工具 制作淘宝主图视频 MKScript 鼠标键盘自动化脚本语言