先来一些非常粗略的背景介绍。尽量保证没有大的概念上的错误,不过依然仅供辅助阅读,详情请自行查阅资料。
我们知道计算机图像是通过量化模拟信号的方式,来用一组数字(比特)来保存实际的颜色。最常见的24位色图,即使用RGB三个通道每通道各256种不同的颜色(256=2^8,即8位)来保存每个pixel的颜色。
但是计算机图像是无法涵盖眼睛能识别到所有颜色的,所以“色彩空间”这个概念就描述了在某个标准下,每个通道从0到255这256^3种组合(假设8bit/ch)所能涵盖的色域。色彩空间的标准有很多,其中最常见、也是最通用的就是sRGB。不过由于sRGB涵盖的色彩空间很局限,所有有很多其他标准流行,其中摄影、美工界用的最广的应该是Adobe RGB (1998)这个标准。

上面这张图对比了两者涵盖范围的区别。背景的马蹄形是所谓的CIE1931色彩空间,大致是人眼能识别到所有颜色。(注意:很显然这张图本身是sRGB的,外加显示器显示能力的限制,这张图上的颜色是不可能准确的,仅仅是示意图而已。)
我们这里姑且不论Adobe RGB比sRGB广、导致部分颜色用sRGB完全无法表达的问题,更重要的是对于两者都涵盖的同样的一个颜色(感官颜色),其对应的R/G/B数值是并不相同的。
(题外话:因为Adobe RGB色域比sRGB广,我们可以看到如果用同样的位深,Adobe RGB会更容易出现banding——因为相邻两个数值之间的颜色“距离”更大。这也是为什么经常会配合更高位深譬如16bit/ch使用的缘故之一。)
譬如下面两张图:
如果你的浏览器设置正常(现在主流浏览器默认应该都对ICC有支持),应该是呈现一样的颜色;但是其图像文件的pixel的RGB数值并不相同,分别是175,20,67(Adobe RGB)以及205,12,66(sRGB)(这里的数值是指文件内部的真实数值——不要用截图取色来比较(Photoshop等专业软件里取色则可以))。如果硬要把其中之一的数值用另外一个色彩空间来显示,颜色自然就不对。因为sRGB一般是默认值,所以常见的问题是一个Adobe RGB图像,由于丢失了ICC,会依然按照175,20,67的数值、但是在sRGB色彩空间里来找对应的颜色来显示,那么就变成了下面这样:

了解了这一点,我们就很好说明现在常见的一个问题是什么了。
如上所说,现在工业界无论是摄影还是美工,前期编辑、处理一般都用Adobe RGB 来进行。一般而言,在最终出图尤其是网络用图时,最兼容的方法应该是全部转换成sRGB。虽然会因此损失一些色域,但是要知道现在大部分用户的显示器根本没有显示sRGB以外色域的能力,外加软件兼容性的一团乱麻,所以即使提供了也大抵是白费功夫(当然,这点应该会逐渐改变)。
即使是要用Adobe RGB来出图,那最低限度也应该提供正确的embedded ICC profile。否则,谁知道你这图是什么色彩空间?只会fallback到默认的sRGB去。举个实际例子的话:
不幸的事实是,网站上、尤其是日本网站上大量存在AdobeRGB直接抹去ICC变sRGB的现象。举最明显的例子的话,iTunes提供的几乎所有封面图都有这个问题。可以对比iTunes提供的僵尸色(左)和索尼提供的正确颜色(右):

由于对这个问题关注已久,我几乎已经练就了不需要对比,仅仅看图片的饱和度多寡就可以看出这图是不是Adobe RGB硬抹掉ICC变sRGB的本领(苦笑)。我们来道练习题——虽然Sony家一般官网的图大多是对的,但是也有出岔子的时候——下面这个截图里哪些CD封面颜色是对的,哪些不对?

(答案:『365×LOVE』和『トクベツいちばん!!』的正确,其他错误。)
上面说到如果有正确的embed ICC profile,那会好不少,首先至少网页里会显示正确。可惜,大部分软件对于ICC的支持还极其有限。最简单的例子,本地的图片浏览器我用的ACDSee的quickview查看器就完全不支持ICC,完整版部分支持(根据我观察,好像JPG内嵌支持但是PNG内嵌ICC不支持,很迷);XnView那边,是需要开启一个选项即可。另外,如果直接复制图片到QQ里,也会导致ICC丢失。
不过移动端的OS由于封闭性较强,倒是支持的程度好一些,不少看图软件的支持度都还可以。我顺便试了下把有ICC的AdobeRGB图嵌入到音频文件里放手机播放(我用的比较多的一个使用场景),Google Play Music和BubbleUPnP都能正常显示,Foobar2000倒是败了。
对于一个已经丢掉ICC的Adobe RGB图,可以使用一些常见的元数据工具(ICC profile应该是在XMP里描述)来无损(不二次压缩)地把ICC嵌回去。如果不在乎无损或者反正还要进行其他处理,则可以直接用PS处理:打开图片后,先“指定配置文件”为Adobe RGB (1998),再(可选步骤)“转换为配置文件…”成sRGB即可。
另外,这个问题绝不仅限于Adobe RGB:比如现在的iOS,无论是拍照还是截图,都会使用非sRGB色彩空间(Display P3?);所以所有的图都会有类似的问题。这也是为什么大多数iOS用户发到QQ里的截图都看起来饱和度很低的缘故。
CMYK也一样——稍微好点(?)的是CMYK直接强制丢掉ICC会出现极为可怕的效果,所以一般人还能察觉并纠正(即使如此,在日本网站上并不罕见……一个范例 )。相比之下Adobe RGB的问题就在于,和正确的颜色差别不大,很多人可能受害多年但是从未发现。
不过,CMYK有个独有的问题是,由于CMYK有四个通道,所以强制转换之后会经常出现K通道直接彻底丢失的问题。这样基本没可能再准确还原原来的色彩。我个人制作了一个PS action来还原这种图——对于K通道,我采用的方式是强制把图转换一次CMYK来单独提取K通道复制回来,这样至少比较接近。
另外,由于CMYK的色域比RGB还小,所以一个图哪怕是正确地转换成CMYK,饱和度也会有下降,在一些比较鲜艳的图里很明显。不过和Adobe RGB丢失ICC那种感觉还不同,因为不会丢失太多明度,只是不那么饱和而已:
(上图都是我模拟的,为了保证显示效果一致,最后又都转回了sRGB。注意最后那个鬼畜的颜色。)
说了这么多,最后反正还是得一边骂一边天天手动改专辑封面颜色(

























