为什么 display-p3 颜色没有正确渲染?

问题描述 投票:0回答:0

我正在尝试使用 display-p3 颜色空间设置网页上某些文本的颜色。然而,在通过 CSS 将颜色设置为

color(display-p3 0 1 0)
之类的颜色后,文本仅显示为
#0f0
。事实上,如果我使用浏览器内置的吸管工具读取文本的颜色值,它会返回
color(display-p3 0.46 0.99 0.3)
,这就是
#0f0
在display-p3中的表示方式。

这是浏览器错误还是我误解了颜色空间的工作原理?我期待

color(display-p3 0 1 0)
#0f0
更强烈的绿色。我在我的 Macbook Pro 上的 Safari 16.1 和 Chrome 112 中都试过了,行为是一样的。


附录:我尝试在系统偏好设置中将笔记本电脑屏幕的颜色配置文件从“sRGB IEC61966-2.1”更改为“显示 P3”,这样做会使吸管工具在 Safari 中正常运行。然而,Chrome 似乎仍然总是将渲染颜色裁剪为当前颜色配置文件中的

#0f0

但是,我仍然不明白的是,更改屏幕的颜色配置文件会使屏幕上的一堆颜色静音,因此现在

#0f0
color(display-p3 0 1 0)
之间存在明显的区别。但是“Display P3”中的
color(display-p3 0 1 0)
still看起来和“sRGB”中的
#0f0
一模一样。那么我是不是误解了颜色空间的工作原理,或者我的显示器与 display-p3 不兼容,或者这是浏览器错误?

:root { background: black; }
#p3-text { color: color(display-p3 0 1 0); }
#srgb-text { color: #0f0; }
#converted-text { color: color(display-p3 0.46 0.99 0.3); }
<div id='p3-text'>
  This text is pure green in display-p3.
</div>
<div id='srgb-text'>
  This text is pure green in sRGB.
</div>
<div id='converted-text'>
  This text is pure sRGB green converted to display-p3.
</div>

css google-chrome browser colors color-space
© www.soinside.com 2019 - 2024. All rights reserved.