Web 的颜色配置文件

The color profile of the Web

如果你熟悉颜色 spaces(ICC 配置文件),你可能知道,有 "absolute units" 代表颜色(XYZ,L*a*b*)和设备-特定单位(RGB、CMYK ...),可以表示任何真实颜色(除非使用 ICC 配置文件指定)。

但在网络上,我们通常使用 RGB 单位(例如在 CSS 中或在 Canvas 上绘制时)而不指定任何颜色配置文件。是否在某个地方定义了整个网络都使用 sRGB 或其他颜色 space?

微软和惠普在1990年代开始将colour space for the web定义为sRGB。从那以后,它似乎一直坚持下去,只是做了一些小的修改和澄清。

可以在 W3C CSS3 color

找到更多内容

你的问题有点笼统,不可能用一句话来回答。

所以让我们去 the specs :

All RGB colors are specified in the sRGB color space (see [SRGB]). User agents may vary in the fidelity with which they represent these colors, but using sRGB provides a unambiguous and objectively measurable definition of what the color should be

所以这表明 CSS <color> 的 sRGB 是预期的,有一些变体。

有哪些变体?

好吧 ,浏览器可以访问当前使用的显示器的颜色配置文件,并将使用它来调整创作值以通过此用户设置的颜色配置文件匹配 sRGB 输出。
Firefox has some flags to do the same.

请注意,有一个 feature request 添加 color-profile CSS 规则,以允许作者定义要在页面上使用的颜色配置文件。请注意,此功能请求已在当前规范中 [已删除],但可能仍会出现在未来版本中。


这是针对 CSS <color> 的,但这并不是网页中唯一定义颜色的地方。


如今,大多数浏览器在 <img> 元素中显示时会读取图像中嵌入的颜色配置文件。

但是由于您用 canvas 标记了您的问题,因此应该注意,当浏览器在canvas.
再一次,有一个 pending feature request 可以向 2DContext 添加更多选项。其中一个选项是 color-profile.
目前,只有 Chrome 是 in the process of implementing it,所以很难说它到底是什么,如果有的话。


另外,既然我们在做,应该注意 svg 确实有一个 <color-profile> element, and a @color-profile CSS rule, which also have been proposed for CSS specs, but got dropped in the final edition.

并且可能还有关于视频中颜色管理的说明,但为此,我不知道谁支持它(IIRC 非常罕见,并且只允许在 mp4 容器中使用)。