前端要懂的色域知识

前端也要面对“五彩斑斓的红”这种世纪难题了吗?

rgb(255, 0, 0)真的是红色吗

现在有个 CSS 色值:rgb(255, 0, 0),请问一下各位,在网页上展示的是什么颜色?

各位可能不用思考就马上能够脱口而出:红色!

But,各位有没有想过,这个色值可能不是“红色”,至少不是你想象中的那种“红色”?

什么?!前端也要面对“五彩斑斓的红”这种世纪难题了吗?

色彩空间

人眼能看到的所有颜色是某些特定波长的光,这些所有的颜色称为颜色空间。色彩空间如何描述?使用最广泛的颜色空间图是国际照明委员会(CIE)在1931年制定的:

图1

需要说明的是,色彩空间其实不是一个类似“马蹄形的二维图像”,真实的色彩空间是一个三维空间,只不过三维空间不利于理解和比较,所以习惯上用的是其通过一定数学转换的二维空间图。

色域

或者称之为色彩标准,在近几十年来有不同的机构发展出了不同色彩标准。

图2

每种色彩标准是不同行业主导的,比如 sRGB,这是高清电视、PC、专业图像处理的色彩标准,由微软主导。 这个标准也是前端最常接触的色彩标准,也是计算机世界支持最广泛 的色彩标准之一。

而 DCI-P3 则是由米高梅、迪士尼、华纳等影业巨头联合推出的数字电影色彩标准之一。

而 Display-P3(类似 DCI-P3 ) 则是苹果主导的色彩标准,已广泛用在其软件产品和硬件产品上。

图3

从图3可以看出来,某个色彩标准是色彩空间的某个子集。比如 sRGB,仔细观察它的色彩范围形成的三角形(或多边形)区域,其绿、红、蓝顶点是其所能呈现最绿、最红、最蓝的颜色。

这个三角形区域(色彩配置)一般在系统里可以找到,比如 MacOS 下,在“设置——显示器——颜色”里面:

图4

打开这个色彩描述文件,可以看到里面定义了白色、黑色,以及红、绿、蓝所在的色彩空间的三维坐标:

图5

所以经过上面的介绍,也就能解答文章开头提出的问题了, 在不同的色彩空间下,“最红”的颜色看上去不全是一样的

色准

假如你手头有两部电脑,在硬件一样、色彩配置一样的情况下,红色 rgb(255, 0, 0) 看上去也会是一样的吗?

答案是不可能完全一样。

这里牵涉到的一个概念是色准:色彩显示准确度。记作 ΔE,一般来讲,设备的 ΔE 越小越好。想知道你的笔记本电脑的屏幕色准是多少?可以在这里 https://www.no tebookch ec k.net/The-Best-Notebook-Displays-As-Reviewed-By-Notebookcheck.120541.0.html 看看,Notebookcheck 是一本国际性的硬件评论杂志,链接里有不少最近笔记本的屏幕色准测评数据(数据真实性没考证,请大家理性对待)。可以看出其实苹果系的 MBP 其实在笔记本里屏幕色准不是最顶尖的,不过已经是不错的水平。

在手机方面,最近的一加8系列的屏幕号称做到了平均 ΔE 小于1,而小米10则号称 ΔE 小于1.1,这样的水平已经很不错了。不过笔者没有以上者两款机子,有用过的同学可以来说说感受。

广色域

这几年的苹果手机、部分安卓旗舰、以及一些显示器都号称支持了广色域,那么广色域到底是什么呢?

业界目前没有对这个概念有定义。一般来讲,支持除了 sRGB 外的色域,如 Display-P3、 Adobe RGB,都可以称为广色域。

这里尤其要说说苹果全家桶,它们都支持了 Display-P3 色彩标准。为什么要把 sRGB 取而代之?因为这个标准比较旧,支持的色彩太少,不够“好看”。Display-P3 的“红色”、“绿色”会更多。

图6

Display-P3 使用了 DCI-P3 的色域,标准色温是 D65(6500K),标准 Gamma 值被设定为2.2(DCI-P3 为 2.6)。为了最大程度兼容 sRGB,所以其色温和 Gamma 值都和 sRGB 一致,并没有照搬 DCI-P3 标准。所以 DCI-P3 规定的标准白色会比 Display-P3 更偏黄一些,且 Display-P3 由于更低 Gamma 值整体画面风格会更亮一些。

如何知道您的笔记本是否支持 Display-P3 广色域?可以打开一下网址去看一下效果:

https://webkit.org/blog-files/color-gamut/comparison.html

如果您的手机是 iPhone 7 以后的机型、MBP、一加手机等,可以看到第一张红色图片中间有个 webkit 的 logo,否则看到的只是一张纯红色的图片。

前端能用上广色域吗?

答案是肯定的。不过目前只有 Safari(UIWebView)支持的比较好。

图7

CSS写法:

<pre class="prettyprint hljs css" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">

.rect {

background: rgb(255, 0, 0); /* 此行代码可兼容不支持color()语法的浏览器 */

/* 背景色:红色 */

background: color(display-p3 1 0 0);

}

</pre>

这个语法属于 CSS4 的内容,而 CSS 不像 ECMAScript 那样迭代比较快,估计要普及需要一定时间。

这里有一个demo: https://codepen.io/cos2004/pen/Vwewyjw (不支持该语法的浏览器页面会是一片白色)

图8

方形是 Display-P3 的红色,中间的 “Tencent” 文字是普通 sRGB 的红色。

而单击选择颜色时,以色盘的白线分割,左下部分是 sRGB 颜色。这里也可以看出来 Display-P3 的“红色”、“绿色”比 sRGB 多不少:

图9

图10
也可以用媒体查询来判断是否支持广色域:

@media (color-gamut: p3) {

 /* Do colorful stuff. */

}

当然 @supports 特性查询也是可以的:

 (color: color(display-p3 1 1 1)) {

 /* Do colorful stuff. */

}

在 js 部分,可以用以下代码判断浏览器是否支持 Display-P3 色域:


(window.matchMedia("(color-gamut: p3)").matches) {

 // Add your code.

}

Display-P3 颜色和 sRGB 颜色如何互相转换?最直接的方式是在开发者工具里右键颜色即可。

图11

顺便提一下,MacOS 也自带了一个转换颜色计算器:ColorSync Utility(色彩同步实用工具)。

图12

web 图片用上广色域

在图片的生产流程里,主要牵涉到以下4个颜色配置:

  • 输入和生产,Sketch/Photoshop、相机等

  • 显示器:即设计师显示器

  • 文档:即图片本身

  • 输出(展示端):如用户手机、用户电脑显示器等

前三步属于生产端,要说把控,其实都可以把控好。关键是用户手机是否支持。除了 iOS 外,目前安卓的色彩管理并不统一,国内的安卓厂商只有一加做的不错。所以想在 web 里使用 Display-P3 的图片,要接受大量安卓手机的色彩管理是 sRGB 的事实,呈现的时候会丢失一部分色彩信息。看上去会没那么鲜艳。

另外,还要注意前端开发过程中,图片压缩工具可能会自动去掉文件的“颜色描述”信息,而且图片 CDN 一般也会去掉这类元数据,然后图片又会被设备以 sRGB 去展示……

图13

未来

人对于色彩的追求肯定是越丰富越好,目前在 Display-P3、Adobe RGB 等广色域的标准加持下,很多终端实现了丰富的色彩输出。

但这些标准是尽头吗?

可能并不是。

比如国际电信联盟无线电通信部门在 2012 年制定的 Rec2020(BT2020) 标准,其色域范围可在图3查看。这是一个超高清电视的色彩标准,此标准基本包含了 Display-P3、Adobe RGB 等现在常见的色域。

不过一个色彩标准的普及并不是简单的事,需要内容生产端、用户设备端、软件服务端(如 Photoshop / webkit )等行业各个链路的支持,有机会也有阻力,考验着各家厂商的能力。

总结

  1. 如果设计师想在 web 尝试 Display-P3,可在 CSS 渐进式增强使用,要注意补全 fallback 颜色

  2. web 图片可用 Display-P3,注意图片“颜色描述”元数据不要被干掉

  3. 电影院放映的电影色彩更像苹果设备的色彩


最后送大家一波福利

历经两个月发展,本人终于回归前端岗位!裸辞的艰辛已然消逝
在这里特地讲我自己这两个月整理的相关面试题分享给大家,免费获取哦~

内容:

  • 基础题(293题)

  • 进阶题(30题)

  • 高级题(91题)

  • 计算机基础题(14题)

  • 高频考点(37题)

  • 综合问题(125题)

  • 大厂面试真题(阿里、网易等)

  • 个人面试经验思维导图

获取方式:

一、搜索QQ群,前端学习交流群:954854084

二、点击加入,与前端大牛一起进步!

三、QQ扫描下方二维码!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342