sRGB 与 Display P3:为什么同一张照片在每个屏幕上都不一样

Images Nov 1, 2026 4 min read

你导出一张照片,看起来没问题。你上传它,在网站上颜色变得平淡。或者反过来:你手机的截图在别人笔记本上显得刺眼地过饱和。中间没有任何编辑。像素一个都没变。

变的是解读方式,而要理解为什么,只需要一个概念。

数字不是颜色

一个像素存的是像 255, 0, 0 这样的东西。很容易把它读成“红色”,但它不是。它的意思是这个系统能产生的最红——而那实际上有多红,完全取决于你说的是哪个系统。

色彩空间就是那个把这些数字变成真实颜色的定义。它精确指定最大值对应到哪个物理上的红、绿、蓝。换一个色彩空间,255, 0, 0 就变成另一个红色——即使文件里没有一个位移动过。

整个问题就在这里。同样的数字,对照两个不同的定义去读,产生两张不同的图。

你会遇到的两个空间

sRGB 在 1996 年标准化,是照那个年代的屏幕能做到的事建立的。它是最小公分母,至今仍是网页的默认假设。它能重现的颜色范围——它的色域——不大,而这正是它安全的原因:此后几乎每一台显示器都能完整显示它。

Display P3 是现在多数手机、笔记本和电视使用的较宽空间。它涵盖的颜色比 sRGB 多约 25%,多出来的主要在饱和的红色和绿色。一场鲜艳的夕阳或一片深绿的叶子,有些颜色存在于 P3 而在 sRGB 里根本无法表示——它们会被截回最接近的 sRGB 颜色,而那更黯淡。

所以 P3 比较好,在“能描述更多”这个意义上。那和“对某个文件来说是正确选择”不是同一件事。

它是怎么坏掉的

每一张图都可以带一个叫 ICC profile 的小标签,说明它的数字属于哪个色彩空间。色彩管理不过就是读那个标签、然后据此调整显示的做法。

失败只有一种形状,但有两个方向:

P3 数据、没有 profile、被当成 sRGB 显示。软件看到饱和的数字,拿较窄的定义去解读。出来的一切都过于鲜艳——皮肤像晒伤、红色发光、绿色绿到像有辐射。这是远远最常见的版本,也是人们说一张图“在网上看起来怪怪的”时通常指的那个。

sRGB 数据被误读成 P3。相反:一切看起来褪色、带点灰。

两种情况里图都是完好的。坏掉的只有那个标签——不是没了就是错了。

陷阱:剥除元数据

这一点值得单独警告,因为人们是出于正当理由照做的,然后解释不了结果。

为网页优化图片经常包括移除元数据——相机设置、GPS、时间戳——来省字节。那是好建议。但ICC profile 也是元数据,而一个设置成“全部剥除”的工具会把它跟其他东西一起带走。

文件小了几 KB,颜色坏了,而且如果你工作的那台机器的显示器刚好符合那个假设,在你这边是看不出来的。剥元数据时把色彩 profile 留着。它很小,而且它是唯一会改变图片外观的那一部分。

要“转换”,不要“指定”

图像软件提供两个听起来很像、做的事却相反的操作。把它们搞混,就是颜色被永久破坏的方式。

转换到某个色彩空间:软件重新计算每一个像素,好让你看到的颜色尽可能维持原样。数字变了;外观保住了。这几乎永远是你要的。

指定某个色彩空间:数字原封不动,换的是标签。外观会偏移,因为同样的数字现在代表别的意思。

指定只在一种情况下有用:当一个文件弄丢了它的 profile,而你知道它本来应该是什么,指定正确的那个就还原了真相。误用的时候——对一张 P3 的图“指定 sRGB”而不是“转换成 sRGB”——它会把错的颜色烤进去。

实际上该怎么做

P3 文件是怎么在你没要求的情况下冒出来的

你可能正在产出 P3 图片而从没选过。iPhone 的照片和截图默认就是 P3。拍宽色域配置文件的现代相机也是。近期硬件上的屏幕录像和设计软件往往也是。

这就是为什么这个问题会在从没碰过色彩设置的人身上凭空出现:拍摄端变宽了,交付端还停在 sRGB,而唯一撑住这件事的,是一个中间某个工具可能悄悄丢掉的标签。

速查

快速解决你的文件问题: 图片格式转换 立即免费使用 — 图片格式转换 →