前端要懂的色域知識

前端也要面對“五彩斑斕的紅”這種世紀(jì)難題了嗎乐严?

rgb(255, 0, 0)真的是紅色嗎

現(xiàn)在有個 CSS 色值:rgb(255, 0, 0)择镇,請問一下各位干旁,在網(wǎng)頁上展示的是什么顏色?

各位可能不用思考就馬上能夠脫口而出:紅色检痰!

But愤惰,各位有沒有想過苇经,這個色值可能不是“紅色”,至少不是你想象中的那種“紅色”宦言?

什么扇单?!前端也要面對“五彩斑斕的紅”這種世紀(jì)難題了嗎奠旺?

色彩空間

人眼能看到的所有顏色是某些特定波長的光蜘澜,這些所有的顏色稱為顏色空間。色彩空間如何描述响疚?使用最廣泛的顏色空間圖是國際照明委員會(CIE)在1931年制定的:

圖1

需要說明的是鄙信,色彩空間其實不是一個類似“馬蹄形的二維圖像”,真實的色彩空間是一個三維空間忿晕,只不過三維空間不利于理解和比較装诡,所以習(xí)慣上用的是其通過一定數(shù)學(xué)轉(zhuǎn)換的二維空間圖。

色域

或者稱之為色彩標(biāo)準(zhǔn)践盼,在近幾十年來有不同的機構(gòu)發(fā)展出了不同色彩標(biāo)準(zhǔn)鸦采。

圖2

每種色彩標(biāo)準(zhǔn)是不同行業(yè)主導(dǎo)的,比如 sRGB咕幻,這是高清電視赖淤、PC、專業(yè)圖像處理的色彩標(biāo)準(zhǔn)谅河,由微軟主導(dǎo)。 這個標(biāo)準(zhǔn)也是前端最常接觸的色彩標(biāo)準(zhǔn),也是計算機世界支持最廣泛 的色彩標(biāo)準(zhǔn)之一绷耍。

而 DCI-P3 則是由米高梅吐限、迪士尼、華納等影業(yè)巨頭聯(lián)合推出的數(shù)字電影色彩標(biāo)準(zhǔn)之一褂始。

而 Display-P3(類似 DCI-P3 ) 則是蘋果主導(dǎo)的色彩標(biāo)準(zhǔn)诸典,已廣泛用在其軟件產(chǎn)品和硬件產(chǎn)品上。

圖3

從圖3可以看出來崎苗,某個色彩標(biāo)準(zhǔn)是色彩空間的某個子集狐粱。比如 sRGB,仔細(xì)觀察它的色彩范圍形成的三角形(或多邊形)區(qū)域胆数,其綠肌蜻、紅、藍(lán)頂點是其所能呈現(xiàn)最綠必尼、最紅蒋搜、最藍(lán)的顏色。

這個三角形區(qū)域(色彩配置)一般在系統(tǒng)里可以找到判莉,比如 MacOS 下豆挽,在“設(shè)置——顯示器——顏色”里面:

圖4

打開這個色彩描述文件,可以看到里面定義了白色券盅、黑色帮哈,以及紅、綠锰镀、藍(lán)所在的色彩空間的三維坐標(biāo):

圖5

所以經(jīng)過上面的介紹娘侍,也就能解答文章開頭提出的問題了, 在不同的色彩空間下互站,“最紅”的顏色看上去不全是一樣的 私蕾。

色準(zhǔn)

假如你手頭有兩部電腦,在硬件一樣胡桃、色彩配置一樣的情況下踩叭,紅色 rgb(255, 0, 0) 看上去也會是一樣的嗎?

答案是不可能完全一樣翠胰。

這里牽涉到的一個概念是色準(zhǔn):色彩顯示準(zhǔn)確度容贝。記作 ΔE,一般來講之景,設(shè)備的 ΔE 越小越好斤富。想知道你的筆記本電腦的屏幕色準(zhǔn)是多少?可以在這里 https://www.no tebookch ec k.net/The-Best-Notebook-Displays-As-Reviewed-By-Notebookcheck.120541.0.html 看看锻狗,Notebookcheck 是一本國際性的硬件評論雜志满力,鏈接里有不少最近筆記本的屏幕色準(zhǔn)測評數(shù)據(jù)(數(shù)據(jù)真實性沒考證焕参,請大家理性對待)∮投睿可以看出其實蘋果系的 MBP 其實在筆記本里屏幕色準(zhǔn)不是最頂尖的叠纷,不過已經(jīng)是不錯的水平。

在手機方面潦嘶,最近的一加8系列的屏幕號稱做到了平均 ΔE 小于1涩嚣,而小米10則號稱 ΔE 小于1.1,這樣的水平已經(jīng)很不錯了掂僵。不過筆者沒有以上者兩款機子航厚,有用過的同學(xué)可以來說說感受。

廣色域

這幾年的蘋果手機锰蓬、部分安卓旗艦幔睬、以及一些顯示器都號稱支持了廣色域,那么廣色域到底是什么呢互妓?

業(yè)界目前沒有對這個概念有定義溪窒。一般來講,支持除了 sRGB 外的色域冯勉,如 Display-P3澈蚌、 Adobe RGB,都可以稱為廣色域灼狰。

這里尤其要說說蘋果全家桶宛瞄,它們都支持了 Display-P3 色彩標(biāo)準(zhǔn)。為什么要把 sRGB 取而代之交胚?因為這個標(biāo)準(zhǔn)比較舊份汗,支持的色彩太少,不夠“好看”蝴簇。Display-P3 的“紅色”杯活、“綠色”會更多。

圖6

Display-P3 使用了 DCI-P3 的色域熬词,標(biāo)準(zhǔn)色溫是 D65(6500K)旁钧,標(biāo)準(zhǔn) Gamma 值被設(shè)定為2.2(DCI-P3 為 2.6)。為了最大程度兼容 sRGB互拾,所以其色溫和 Gamma 值都和 sRGB 一致歪今,并沒有照搬 DCI-P3 標(biāo)準(zhǔn)。所以 DCI-P3 規(guī)定的標(biāo)準(zhǔn)白色會比 Display-P3 更偏黃一些颜矿,且 Display-P3 由于更低 Gamma 值整體畫面風(fēng)格會更亮一些寄猩。

如何知道您的筆記本是否支持 Display-P3 廣色域?可以打開一下網(wǎng)址去看一下效果:

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 的內(nèi)容,而 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. */

}

當(dāng)然 @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 顏色如何互相轉(zhuǎn)換巡语?最直接的方式是在開發(fā)者工具里右鍵顏色即可。

圖11

順便提一下淮菠,MacOS 也自帶了一個轉(zhuǎn)換顏色計算器:ColorSync Utility(色彩同步實用工具)男公。

圖12

web 圖片用上廣色域

在圖片的生產(chǎn)流程里,主要牽涉到以下4個顏色配置:

  • 輸入和生產(chǎn)合陵,Sketch/Photoshop枢赔、相機等

  • 顯示器:即設(shè)計師顯示器

  • 文檔:即圖片本身

  • 輸出(展示端):如用戶手機、用戶電腦顯示器等

前三步屬于生產(chǎn)端拥知,要說把控踏拜,其實都可以把控好。關(guān)鍵是用戶手機是否支持低剔。除了 iOS 外速梗,目前安卓的色彩管理并不統(tǒng)一,國內(nèi)的安卓廠商只有一加做的不錯户侥。所以想在 web 里使用 Display-P3 的圖片镀琉,要接受大量安卓手機的色彩管理是 sRGB 的事實,呈現(xiàn)的時候會丟失一部分色彩信息蕊唐∥菟ぃ看上去會沒那么鮮艷。

另外替梨,還要注意前端開發(fā)過程中钓试,圖片壓縮工具可能會自動去掉文件的“顏色描述”信息装黑,而且圖片 CDN 一般也會去掉這類元數(shù)據(jù),然后圖片又會被設(shè)備以 sRGB 去展示……

圖13

未來

人對于色彩的追求肯定是越豐富越好弓熏,目前在 Display-P3恋谭、Adobe RGB 等廣色域的標(biāo)準(zhǔn)加持下,很多終端實現(xiàn)了豐富的色彩輸出挽鞠。

但這些標(biāo)準(zhǔn)是盡頭嗎疚颊?

可能并不是。

比如國際電信聯(lián)盟無線電通信部門在 2012 年制定的 Rec2020(BT2020) 標(biāo)準(zhǔn)信认,其色域范圍可在圖3查看材义。這是一個超高清電視的色彩標(biāo)準(zhǔn),此標(biāo)準(zhǔn)基本包含了 Display-P3嫁赏、Adobe RGB 等現(xiàn)在常見的色域其掂。

不過一個色彩標(biāo)準(zhǔn)的普及并不是簡單的事,需要內(nèi)容生產(chǎn)端潦蝇、用戶設(shè)備端款熬、軟件服務(wù)端(如 Photoshop / webkit )等行業(yè)各個鏈路的支持,有機會也有阻力攘乒,考驗著各家廠商的能力贤牛。

總結(jié)

  1. 如果設(shè)計師想在 web 嘗試 Display-P3,可在 CSS 漸進式增強使用持灰,要注意補全 fallback 顏色

  2. web 圖片可用 Display-P3盔夜,注意圖片“顏色描述”元數(shù)據(jù)不要被干掉

  3. 電影院放映的電影色彩更像蘋果設(shè)備的色彩


最后送大家一波福利

歷經(jīng)兩個月發(fā)展,本人終于回歸前端崗位堤魁!裸辭的艱辛已然消逝
在這里特地講我自己這兩個月整理的相關(guān)面試題分享給大家喂链,免費獲取哦~

內(nèi)容:

  • 基礎(chǔ)題(293題)

  • 進階題(30題)

  • 高級題(91題)

  • 計算機基礎(chǔ)題(14題)

  • 高頻考點(37題)

  • 綜合問題(125題)

  • 大廠面試真題(阿里、網(wǎng)易等)

  • 個人面試經(jīng)驗思維導(dǎo)圖

獲取方式:

一妥泉、搜索QQ群椭微,前端學(xué)習(xí)交流群:954854084

二、點擊加入盲链,與前端大牛一起進步蝇率!

三、QQ掃描下方二維碼刽沾!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末本慕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子侧漓,更是在濱河造成了極大的恐慌锅尘,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件布蔗,死亡現(xiàn)場離奇詭異藤违,居然都是意外死亡浪腐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門顿乒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來议街,“玉大人,你說我怎么就攤上這事璧榄√劁觯” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵骨杂,是天一觀的道長拾稳。 經(jīng)常有香客問我,道長腊脱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任龙亲,我火速辦了婚禮陕凹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鳄炉。我一直安慰自己杜耙,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布拂盯。 她就那樣靜靜地躺著佑女,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谈竿。 梳的紋絲不亂的頭發(fā)上团驱,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天,我揣著相機與錄音空凸,去河邊找鬼嚎花。 笑死,一個胖子當(dāng)著我的面吹牛呀洲,可吹牛的內(nèi)容都是我干的紊选。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼道逗,長吁一口氣:“原來是場噩夢啊……” “哼兵罢!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起滓窍,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤卖词,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后贰您,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坏平,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡拢操,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了舶替。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片令境。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖顾瞪,靈堂內(nèi)的尸體忽然破棺而出舔庶,到底是詐尸還是另有隱情,我是刑警寧澤陈醒,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布惕橙,位于F島的核電站,受9級特大地震影響钉跷,放射性物質(zhì)發(fā)生泄漏弥鹦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一爷辙、第九天 我趴在偏房一處隱蔽的房頂上張望彬坏。 院中可真熱鬧,春花似錦膝晾、人聲如沸栓始。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽幻赚。三九已至,卻和暖如春臊旭,著一層夾襖步出監(jiān)牢的瞬間落恼,已是汗流浹背柜裸。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工阵幸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留辕翰,地道東北人缴挖。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓洪唐,卻偏偏與公主長得像蒿柳,于是被迫代替她去往敵國和親客扎。 傳聞我的和親對象是個殘疾皇子饺律,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,802評論 2 345