去年冬天我帮一个做拼多多的朋友看他家藤编筐的主图。他手机上看是偏暖的焦糖色,挺好看,图一传到商家后台的预览框里,直接变成一坨土黄,篮子边上那点藤条的青色全没了。他以为是补光灯不够,又花四百多买了两盏,架起来重拍,还是那个效果。后来我让他把原图直接发我微信文件传输助手,我用 exiftool 拉了一下——Photoshop 里那张图的 ICC 配置文件那一栏是空的,照片本身是 Display P3 的色。他上传的环节把这个几百字节的小东西吃掉了,跟灯一点关系都没有。
颜色这事儿,数值本身不带意义
很多教程一上来就讲色域、讲三角形,我觉得顺序反了。你先记住一句话:RGB(255,0,0) 这组数字本身什么颜色都不是,它得配一把尺子才有意义。sRGB 那把尺子上的红,和 Display P3 那把尺子上的红,数字一模一样,实际差挺远——P3 的原色更靠外,更能逼出饱和的红橙和青绿。
ICC 配置文件就是这把尺子。图片带上它,软件才知道该怎么解释这些数字。尺子一丢,大多数软件不会报错,只会默默按 sRGB 猜。于是出现两个方向完全相反的结果,很多人混着说,越说越乱:
原图是 P3、被当成 sRGB 显示 → 颜色比本该有的更淡、更闷,也就是常说的"发灰";原图是 sRGB、在广色域屏上被当成 P3 显示 → 过饱和,红得像荧光笔。你遇到的到底是哪一种,得先查出来,别急着调显示器。
一些能查到的数字
sRGB 大概覆盖 CIE 1931 色度图里 35% 左右的可见色域,Display P3 大概 45%,两者的原色定义不同,白点都是 D65,Display P3 的伽马接近 2.2。iPhone 从 7 那一代开始,默认拍出来的就是 Display P3;小米、华为这几年的旗舰也基本是。所以你手机相册里躺着的,大概率一堆 P3 图。
有意思的是,那个闯祸的 ICC 文件特别小。苹果系统里那个 Display P3 的 profile 我印象里才五百多字节,sRGB IEC61966-2.1 也就 3KB 左右。但就这么点东西,下面这些环节会顺手给你抹掉:
- 一部分在线图片压缩站,上传即 strip;
- 微信在不勾"原图"的情况下转发,质量大概压到 60–70,一张 4MB 的图能变成 200–400KB,ICC 经常跟着没;
- 老版本 PHP 的 GD 库,imagejpeg() 默认不保留 profile;
- 各种截图工具和部分安卓相册的"优化存储"。
顺带说个容易搞混的:JPEG 的色度子采样跟色彩空间是两码事。4:2:0 是把色度采样点在横竖两个方向各减半,色度信息只剩四分之一;4:4:4 是全保留。它影响的是边缘和纯色块附近的色渗,不改变 ICC。有人把"发灰"归到 4:2:0 上,方向错了。
怎么查你手上这张图
macOS:Finder 里选中文件按空格,点右上角"工具"→"显示检查器",往下翻能看到"颜色配置文件"那一行,有就是有,没有就是没有。
Windows:右键属性→详细信息不一定显示 ICC,靠谱点还是装个 ExifTool,命令行敲:
exiftool -ICC_Profile:ProfileDescription photo.jpg
什么都不返回,就是没嵌。
Linux 或者服务器上:
identify -verbose photo.jpg | grep -i profile
Photoshop 里更直接,打开图看标题栏,或者在"编辑→指定配置文件"里看当前被认成了什么。
修的时候,指定和转换千万别搞反
这是我看过最多人翻车的地方,包括我自己。
"指定配置文件"(Assign)只改标签,不动像素数值,画面会当场变一次;"转换为配置文件"(Convert)是重算像素数值,让视觉上尽量保持一致。顺序必须是:先确认源配置文件对不对,不对就用"指定"纠正,纠正完再用"转换"换到目标空间。反过来做,图基本就废了,尤其是有大面积渐变的天空。
Photoshop 里的路径:编辑→转换为配置文件→目标选 sRGB IEC61966-2.1→意图用相对比色→通常勾上"使用黑场补偿"。
命令行的话:
# 已嵌入源 profile,直接转换
magick in.jpg -profile "/System/Library/ColorSync/Profiles/sRGB Profile.icc" out.jpg
# 转完检查一遍
exiftool -ICC_Profile:ProfileDescription out.jpg
如果原图压根没嵌 profile、但你知道它本来是 P3,那就得先指定再转换,一条命令里写两个 -profile,第一个是给它贴上源空间的标签,第二个才是转。写错顺序,出来的图会整体偏色,而且偏得很自然,你不比对原图根本发现不了。
批量的话,Photoshop 的 文件→脚本→图像处理器,勾上"转换为 sRGB",整个文件夹丢进去跑,几百张也就几分钟。XnConvert 也行,输出设置里有 ICC 相关选项。网页端我用得比较谨慎,Squoosh 会保留 ICC,TinyPNG 那一类基本不留。
说个跟主流教程不太一样的观点
网上搜"图片色彩管理",十条里有九条告诉你:一律转 sRGB,省事。我不太同意这个"一律"。
如果你的图只在苹果生态内部流转——隔空投送、照片 App、Keynote、Pages——P3 是更好的选择。硬转成 sRGB 等于主动砍掉接近 10% 的色域,那些大面积的暖橙、正红、偏青的水面会肉眼可见地变闷。我自己给客户做产品图册时就吃过这个亏,第一版全部转成 sRGB 发过去,对方在 MacBook 上翻,说"怎么比样机看着灰",我又一版一版往回找。
真正需要 sRGB 的是这些场景:电商后台、公众号、寄给印刷厂、发到不特定人群的大群。这些地方你根本不知道对面是什么设备、什么软件、中间过几道压缩,sRGB 是最不坏的选择。
我现在自己的做法是留两份:原图 P3 存档,导出时按用途现生成 sRGB 版本。多占一块硬盘,比来回返工省心多了。
display 这一块还有个坑,别看到"原图"两个字就放心。微信发图不勾原图是压过的,勾了原图才基本原样保留。同一张照片,你在自己相册里看是正常的,发出去别人说"你这拍的什么",十有八九不是你的问题,是路上那把尺子掉了。