顏色空間

色彩空間是用於基於座標的顏色排列的底層顏色模型的命名顏色組織。顏色模型定義了顏色的各個分量(例如,hwb() 顏色的 hwb 通道)與色彩空間的關係。大多數色彩空間是三維或四維網格,用於表示顏色。每個維度(或軸)對應一個不同的通道。顏色可以用多種色彩空間表示,並且可以在不改變外觀的情況下從一個色彩空間轉換為另一個色彩空間。

色彩空間對顏色進行分類和定義特定的顏色範圍。每個色彩空間都由一個數學模型和相關的規則集定義。每個色彩空間都有一個定義的色域,指的是它能表示的特定顏色範圍。這些規則使得在不同裝置和軟體之間實現一致且可重現的顏色表示成為可能。

sRGB 色彩空間(標準紅、綠、藍)是為網路建立的,但我們不再侷限於此色彩空間。 CSS Color Module Level 4 規定了幾個預定義的色彩空間,而 CSS Color Module Level 5 則更進一步,規定了定義自定義色彩空間的特性。

命名色彩空間

預定義的RGB 色彩空間包括 srgbsrgb-lineardisplay-p3a98-rgbprophoto-rgbrec2020。預定義的CIELAB 色彩空間包括 lab-d50lab-d65。預定義的XYZ 色彩空間包括 xyz-d50xyz-d65(以及 xyz,它是 xyz-d65 的別名)。

色彩空間分為矩形或極座標。矩形色彩空間包括 srgbsrgb-lineardisplay-p3a98-rgbprophoto-rgbrec2020laboklabxyz-d50xyz-d65(或 xyz)。極座標色彩空間包括 hslhwblchoklch

RGB 色彩空間

RGB 是一種顏色模型,它將顏色表示為三種底層分量的混合——紅色、綠色和藍色通道——這些分量組合起來可以產生各種色調。sRGB,或稱為“標準 RGB”,是RGB顏色的底層色彩空間。sRGB 旨在規範 PC 和Web影像系統的顯示規範。對於沒有標記顏色配置檔案或嵌入顏色配置檔案的影像,它通常是預設的色彩空間。

有幾種 RGB 色彩空間,例如Adobe RGB 色彩空間,它們比sRGB 色彩空間能夠表示更寬的色域sRGBAdobe RGBa98-rgb)中的座標是不同的。有許多方法可以描述顏色的 RGB 分量。在CSS中,它們可以表示為十六進位制記法中的單個 24 位整數(例如,#add8e6 是淺藍色),或在rgb()函式記法中表示為三個介於 0 和 255 之間的獨立數字(例如,rgb(46 139.5 87))。

sRGB 色彩空間中的 CSS <color> 值包括 <hex-color><named-color>rgb()hsl()(色相、飽和度、亮度)和 hwb()(色相、白度、黑度)。對於 color() 函式,還有 srgbsrgb-lineara98-rgbprophoto-rgb 色彩空間。

HSV(色相、飽和度和值)色彩空間及其同義詞 HSB(色相、飽和度和亮度)在 CSS 中表示為 hwb()。命名顏色只是對映到特定十六進位制值的關鍵字。將這些各種顏色表示法轉換為 sRGB 在數學上是直接的。請注意,currentColor 可以是任何顏色,它不限於 sRGB。

rgb() 顏色函式不是唯一可以表示sRGB 色彩空間的顏色函式。在 Web 上,諸如 HSL色相-飽和度-亮度)或 HWB色相-白度-黑度)顏色模型之類的圓柱座標系也用於表示 sRGB 顏色。

srgb 色彩空間

sRGB 色彩空間,或稱“標準 RGB”,是標準 RGB(紅、綠、藍)色彩空間。它被建立用於顯示器、印表機和 Web。它是使用最廣泛的色彩空間,並得到大多數作業系統、軟體程式、顯示器和印表機的支援。sRGB 基於 rgb,其中處於色域內的值範圍從 01。白點是 D65。

srgb-linear 色彩空間

預定義的線性光 sRGB 色彩空間 srgb-linearsrgb 相同,只是傳輸函式是線性光,沒有伽馬編碼。srgb-linear 色彩空間接受三個 rgb 值作為數值引數,其中處於色域內的顏色範圍從 01。白點是 D65。

display-p3 色彩空間

由 Apple 定義的 Display P3 色彩空間結合了 DCI-P3 色域、D65 白點和 sRGB 伽馬曲線。它是一個寬色域空間,是當前寬色域顯示器的典型代表,比 sRGB 色彩空間能顯示更鮮豔的綠色和紅色。display-p3 基於 rgb,其中處於色域內的值範圍從 01。白點是 D65。

a98-rgb 色彩空間

a98-rgb 是 Adobe® 1998 RGB 色彩空間,旨在將所有 CMYK 顏色表示為 RGB。可以實現 CIELab 色彩空間指定的可見顏色的大約 50%,比其他 RGB 色彩空間包含更多的青綠色調。處於色域內的 rgb 值範圍從 01。傳輸曲線是伽馬函式,接近但並非完全等於 1/2.2。白點是 D65。

prophoto-rgb

由柯達開發的 prophoto-rgb 色彩空間可以表示自然界中可能出現的所有顏色以及 CIElab 顏色的約 90%。處於色域內的 rgb 值範圍從 01。傳輸曲線是伽馬函式,值為 1/1.8,並且在黑色附近有一個小的線性部分。白點是 D50,與 CIELab 使用的白點相同。

rec2020

rec2020 是超高畫質 4k 和 8k 電視的廣播行業標準。這個超寬色域空間能夠表示幾乎所有可見的真實世界顏色,超出了大多數當前顯示器的能力。隨著顯示器技術的進步,預計覆蓋範圍將隨著時間的推移而增加。處於色域內的 rgb 值範圍從 01。白點是 D65。

注意: CSS 規範中未包含的其他圓柱形 RGB 顏色空間包括:HSI(色相、飽和度和強度)、OkhsvOkhslHSLuvHPLuvCubehelix

CIELAB 色彩空間

CIELAB(或 CIELab)色彩空間,也稱為 L*a*b*(或簡稱 Lab*),表示人類可見的整個顏色範圍。該色彩空間由國際照明委員會 (CIE) 定義。它用三個值表示顏色:L* 代表感知亮度,a* 和 b* 代表人類視覺的四種獨特顏色:紅、綠、藍和黃。

Lab 是一個矩形座標系,有一箇中心亮度 L 軸。a 軸上的正值是紫紅色,負值則是其互補色:綠色。b 軸上的正值是黃色,負值是藍色/紫色。不飽和顏色在 ab 上有較小的值,絕對值越大則越飽和。

CIELab 顏色函式包括 lab()(亮度、a 軸、b 軸)和 lch()(亮度、色度、色相),以及 oklab()oklch()。亮度值是相同的,但 lch()oklch 是極座標、圓柱座標系,使用極座標 C(色度)和 H(色相)而不是軸。

注意: lch()oklch 中的色相和亮度與 hsl() 或其他 sRGB 色彩空間中的同名值不同。

CIELab 色彩空間,包括 Lab、LCH、Oklab 和 OkLCh,是裝置無關的色彩空間。

lab-d50 色彩空間

L 表示顏色,範圍從 0100ab 的範圍從 -125125ab 軸不受這些範圍值的限制,這些值是定義相對於 Display P3 色彩空間的百分比輸入和輸出的參考。白點是 D50。

lab-d65 色彩空間

此色彩空間與 lab-d50 相同,只是白點是 D65。

oklab 色彩空間

lab-d65 類似,但 L 的範圍是 01ab 的範圍是 -0.40.4

XYZ 色彩空間

雖然紅、綠、藍的組合在螢幕上表示顏色效果很好,但 sRGB 並不能直接對應人類感知顏色的方式。CIE 1931 XYZ(或簡稱 XYZ)色彩空間由國際照明委員會 (CIE) 於 1931 年建立,是電磁可見光譜中波長分佈與人類視覺中感知顏色之間的第一個量化聯絡。

具有正常視力的人有三種視錐細胞可以感知光線,其光譜敏感度峰值在不同的波長。CIE 的 X、Y 和 Z 引數對應於三種視錐細胞刺激的水平,這些水平原則上可以描述所有可見顏色。Y 通道代表顏色的亮度。Z 通道反映了顏色中藍色的含量,但與 RGB 中的 B 不同。X 軸與 XYZ 色彩三維座標系的 Y 軸和 Z 軸正交。

xyzxyz-d65 色彩空間

xyz 識別符號是 xyz-d65 色彩空間的同義詞。軸不限於 01 的範圍,因為色彩空間不限於此範圍;這些值僅用作定義百分比輸入和輸出的參考點。白點是 D65。

xyz-d50 色彩空間

xyz-d50xyz-d65 相同,只是它使用 D50 作為白點。

另見