本文所需软件包下载地址:https://download.csdn.net/download/lixg_cc1/20618945?spm=1001.2014.3001.5503。
在使用谷歌浏览器浏览数字报图片时发现原本清晰的图片变模糊,像添加了蒙版的感觉,如下图
图片灰蒙蒙的,从谷歌浏览器换成了Edge、QQ浏览器都是如此,这就很难受。因为是报纸土图片,图片处理小白第一反应就怀疑是CMYK模式惹的祸,原图color space是CMYK模式,经查询,大多数浏览器的color space是sRGB。以下是查到的主流浏览器支持的color space
下面是各个浏览器目前对色彩管理支持程度的简报:
- ICC V2 读取支持:Chrome,Firefox,Safari,Edge
- ICC V4 读取支持:Chrome,Firefox,Safari,Edge
- 转换 Untagged 内容到 sRGB(图片/CSS):Chrome(默认),Firefox(需要自行开启)
- 转换 Untagged 内容到 Rec. 709(视频):Chrome(默认)
- 转换 Tagged 内容到相应的色彩空间(图片/CSS):Chrome(支持,默认),Firefox(支持 ICC V2/V4,V2 默认开启,V4 需手动开启)
- 转换 Tagged 内容到相应的色彩空间(视频):Chrome(支持,默认)
色彩管理能力:Chrome>Firefox(配置)>Firefox(未配置)>Safari>Edge
color space这个信息影响着图像在不同端呈现出来样子,想要在谷歌浏览器浏览报纸图片就要将图片的color space 从CMYK转成sRGB,且尽可能保证图片质量。如果你只有几张图片,工程量不大,那么就在Windows上使用PS直接修改图片模式为RGB,或者直接将推片保存成web模式,PS自动会将图片的color space变成sRGB
但是我需要在centos8环境下持续大批量的处理图片,所以我选择了Graghics Magick,这是一款功能强大图片处理软件,速度蛮快的。但是在使用过程中遇到了很多问题,中文网站上关于它的介绍,大多数还是如何安装,实例很少。
首先在window 10环境下安装Graghics Magick,查询使用手册,决定使用convert来进行图片的color space转换。说明书上关于color space的转换介绍太过简洁,支持转换的color space里并不包括sRGB,所以用RGB试了试
gm convert -colorspace RGB a.jpg b.jpg
转换后的图片在chrome里确实不发灰了,改过亮了,多看一会都辣眼睛。
直接硬转sRGB更惊悚
gm convert -colorspace sRGB a.jpg b.jpg
确实但是GM本身是支持sRGB的。后经查询,color space还需要icc文件支持。
icc的原理是将色彩特性资料预先保存于色彩描述文档,当发生color space转化时,有预先保留的icc文件在,图片原色彩就能在转化后保存住并正常显示。
下载一份sRGB的icc文件(我稍后上传),放到本机上,再-profile调用一下sRGB的icc文件,再转换colorspace,就齐活啦!(好想吐槽,这些图像处理网上的信息小白好难查询)
gm convert -profile D:\sRGB.icm -colorspace sRGB a.jpg b.jpg
至此,windows10上使用Graghics Magick将CMYK图片转换sRGB图片且尽可能保持原图色彩的任务就大功告成了。
事情还没完,此法用到centos系统上就出问题了,报了个错:
gm convert: LCMS encoding not enabled
这个错误我没有找到有用的说明,只能依靠自己猜想,那么一定跟LCMS这个东西有关,win10可以,Linux不行,可能是少东西或少配置,查到头秃后,找到了一小段关于LCMS的介绍
LCMS
Color Space Fixer requires you to have ImageMagick built with LCMS support. LCMS or Little CMS is a color management system library which is required to in order to convert files between different color spaces. LCMS is included by default in most ImageMagick builds.
If LCMS delegate has not been installed, you will get an error message: Color Space Fixer is activated but it’s not doing anything because LCMS delegate for ImageMagick has not been installed.. In this case you might need to build ImageMagick from source using
--with-lcms2=yes
flag.
我的理解color space需要LCMS,LCMS没安装或者没配置对的话,color space也无法正常使用,ImageMagick这里需要--with-lcms2=yes来配置一下,
Graghics Magick从ImageMagick这个软件发展来的,二者相似。那么继续啃Graghics Magick的说明书,多次碰壁后,我找到了这一段
-
GraphicsMagick requires the lcms library (2.0 or later) available from
to perform ICC CMS color management.
通过以上网址,下载LCMS2安装包,解压如果编译安装。
下载Graghics Magick源码包,解压编译时加上 --with-lcms2=yes参数,make && make install后,使用/usr/local/bin/gm version查看版本,如下图,此时LCMS显示yes。GM支持lcms。
将sRGB.icc文件拷入,再次进行图片转换,gm convert -profile /root/sRGB.icc -colorspace sRGB a.jpg b.jpg命令,成功转换。