168 个色彩空间

色彩空间

从到,从到,从 年到 年。
支持 CSS、着色器、WASM 和颜色转换查找表(LUT)。

显示与网页19

用于制作和交付的 RGB 空间,从网页默认标准到更宽的显示色域。

HP & Microsoft, 1996
Apple, 2015
ITU-R, 2012
HP & Microsoft, 1996
ITU-R, 1990
Kodak, 1999
Adobe Systems, 1998
DCI, 2005
Apple, 2015
ITU-R, 2012
Adobe Systems, 1998
Kodak, 1999
IEC, 2003
Kodak, 2000
CIE, 1931
FCC, 1953–87
Walter Bruch / Telefunken, 1967
Apple Computer, 1987–96
SMPTE, 1988–90

RGB 变体9

构建在 RGB 之上的色相、饱和度和明亮度控件。数值等距,看起来未必等距。

Joblove & Greenberg, 1978
Alvy Ray Smith, 1978
Alvy Ray Smith, 1996
John R. Kender, 1976
community convention, 2011
Ian Taylor, 2012
Darel Rex Finley, 2006
Kuzma Shapran, 2012
Bianconi et al., 2009

感知空间48

用于比较颜色、构建调色板和预测色貌的坐标。

Björn Ottosson, 2020
CIE, 1976
Li et al., 2017
Björn Ottosson, 2020
Google, 2021
Björn Ottosson, 2021
Björn Ottosson, 2021
Björn Ottosson, 2021
Björn Ottosson, 2021
Björn Ottosson, 2021
Jan Behrens, 2009
Konovalenko et al., 2021
Li & Luo, 2024
Hensley & Fairchild, 2020
Safdar et al., 2017
Safdar et al., 2017
Fritz Ebner & Mark Fairchild, 1998
Safdar et al., 2017
Mark Fairchild & Garrett Wyble, 2010
CIE, 1976
CIE, 1976
Alexei Boronine, 2012
CIE, 1976
CIE, 1976
CIE, 1976
Alexei Boronine, 2012
DIN, 2018
DIN, 2018
Cui et al., 2002
Richard S. Hunter, 1948
David MacAdam / CIE, 1960–76
Günther Wyszecki / CIE, 1964–76
Elliot Q. Adams, 1942–76
Mark Fairchild & Garrett Wyble, 2010–16
CIE, 2002–17
Li et al., 2017
Safdar et al., 2021
Luo et al., 2006–17
Li et al., 2017
Li et al., 2017
Luo et al., 2006–17
Luo et al., 2006–17
Luke Hellwig & Mark Fairchild, 2022
Mark Fairchild, 1996
Luo et al., 1996
Yoshinobu Nayatani, 1995
Robert W. G. Hunt, 1994
Sherman Lee Guth, 1995

色度学与研究22

测量的基础、人眼,以及专门的研究坐标。

CIE, 1931
CIE, 1931
Estévez et al., 1979
ICC, 1994
CIE, 1976
Yoshi Ohno / ANSI, 2014
Raymond Davis; CIE, 1931
James Clerk Maxwell, 1860
CIE, 1931
ITU-R, 2016
Donald MacLeod & Robert Boynton, 1979
Derrington et al., 1984
CIE, 1931
Hermann von Helmholtz, 1860
James Clerk Maxwell, 1860
Richard Kirk, 2019
Jyrki Alakuijala et al., 2019
OSA committee, 1974
Terrillon & Akamatsu, 2000
Xerox, 1989
Ohta et al., 1980
Ruderman et al., 1998

视频与广播电视20

把明亮度与颜色分开,服务于广播电视、压缩和 HDR 交付。

ITU-R, 1990
Dolby, 2016
ITU-R, 2012
ITU-R, 1982
ITU-R, 1982
ITU-R, 1982
Walter Bruch / Telefunken, 1967
NTSC, 1953–82
ITU-R, 1982
Malvar & Sullivan, 2003
Eric Hamilton / C-Cube Microsystems, 1992
Henri de France, 1967
ITU-R, 2012
Sony / IEC, 2006
SMPTE, 1987
Kodak, 1992
Dolby / ITU-R, 2016
BBC & NHK / ITU-R, 2016
ITU-R, 2016
Julian Fröhlich, 2017

电影与摄影机43

摄影机 Log 编码与工作空间,用于捕捉光线并调色。

Academy, 2014
ARRI, 2010–22
Academy, 2014
Sony, 2014
Sony, 2014
Academy, 2012
Academy, 2016
ARRI, 2022
Kodak, 1992
Blackmagic Design, 2020
Sony, 2012–14
Panasonic, 2014
RED Digital Cinema, 2017
Canon, 2011–15
Canon, 2015
Canon, 2016
Fujifilm, 2016
Fujifilm, 2022
Fujifilm, 2024
Nikon, 2018
Apple, 2023
Apple, 2025
Blackmagic Design, 2020
DJI, 2017
FilmLight, 2013
Kinefinity, 2025
SMPTE/DCI, 2006
Sony, 2008–12
Academy, 2013
Kodak, 2000
Leica, 2020
GoPro, 2012
GoPro, 2026
Insta360, 2026
Xiaomi, 2024
OPPO, 2025
Samsung, 2025
RED Digital Cinema, 2007–08
RED Digital Cinema, 2008–17
RED Digital Cinema, 2016–17
Panavision / Sony, 2005
Thomson Grass Valley, 2002
FiLMiC Inc., 2017

印刷与颜料7

油墨、颜料,以及表面色的测量与编排。

Eagle Printing Ink Co., 1906
Albert H. Munsell, 1905
Johannes Itten, 1961
Louis Ducos du Hauron, 1868–1906
RAL gGmbH, 1993
Antal Nemcsics, 1980
Wilhelm Ostwald, 1917

开始使用

用于颜色转换的 JavaScript 包。单个空间的导入大小不到 1.5 kB,导入全部空间后可在任意两个空间之间转换。同样的转换可用 WASM 处理整幅图像,在 GLSL 或 WGSL 着色器中运行,或导出为 LUT 和 ICC 配置文件。智能体也可通过 MCP 服务器调用。

  • 参考值测试每个色彩空间均经过测试
  • 双向转换任意空间互转
  • 小巧每个空间 0.4–1.5 kB
  • 公有领域CC0
import space from 'color-space'

space.rgb.oklch(255, 128, 0)      // → [0.732, 0.186, 53]
space.oklch.rgb(0.65, 0.25, 180)  // any of 168 × 167 pairs

space.oklch.name    // 'oklch'
space.oklch.range   // [[0,1], [0,0.4], [0,360]]

// one space only – tree-shaken, 0.4-1.5 kB
import oklch from 'color-space/oklch.js'
oklch.rgb(0.65, 0.25, 180)
什么是色彩空间?

颜色的坐标系:坐标轴、取值范围,以及把数值与可测量的光联系起来的规则。同一种橙色可以写成 rgb(255 128 0)、oklch(0.732 0.186 53) 和 XYZ [49, 36.7, 4.5]——同一种颜色,三种写法。调色板是挑选出的几种颜色;色彩空间则是一种能写下任何颜色的方式。

色彩模型与色彩空间有什么区别?

色彩模型规定用哪些分量描述颜色:RGB 使用三原色,HSL 使用色相、饱和度和明度,CMYK 使用四种油墨。色彩空间进一步确定原色、白点和编码曲线,使每组数值对应一个可测量的颜色。因此,rgb(255 0 0) 在 sRGB、Display P3 和 Adobe RGB 中表示不同的红色:模型相同,空间不同。

日常使用中,两者通常都称为色彩空间,CSS 的 color-mix(in hsl, …) 和本目录也沿用这一叫法。没有独立参照基准的模型,可以基于已有的色彩空间定义:这里的 HSL 和 HSV 均以 sRGB 为基础,与 CSS 一致。

我到底该用哪个空间?

取决于任务:

  • 存储和分享图像——sRGB,网页的默认空间;
  • 设计调色板和渐变——OKLCH,等距看起来就等距;
  • 对光做数学运算(混合、模糊、3D)——线性光 RGB;
  • 拍摄和调色视频——你的摄影机的 Log 空间,以 Rec. 709 或 Rec. 2100 交付;
  • 衡量两种颜色看起来差多少——CIELAB 或 DIN99o。

按 用途 分组浏览目录,也是这样归类的。

该用什么替代 HSL?

OKLCH。它保留了同样的三个控件——色相、彩度、明度——但它的明度可信:在 HSL 中,L=50 的黄色发出的光约是 L=50 的蓝色的 13 倍,L 相同并不意味着明亮度相同。在 OKLCH 中则相同。CSS 原生支持 oklch()。

为什么我的渐变中间会发浑?

因为它们是在伽马编码的 sRGB 中计算的:在那里对两种颜色的数值取平均,得到的光比真实混合两束光更暗、更浊。在 OKLab 中插值就能避免。每个档案的 插值 一行都会把同一段混合在两个空间中并排画出,让你在选择前看清差别。

“超出色域”是什么意思?

指一个空间能描述、而另一个空间(或你的屏幕)无法显示的颜色。鲜艳的 Display P3 绿色在 sRGB 中根本不存在:一经转换,数值就会超出有效范围。图谱让这一点始终可见:当前颜色旁的标签会写出能容纳它的最小标准色域,超出范围的区段则以半透明叠在棋盘格上。

为什么印刷品看起来比屏幕暗淡?

屏幕发光;纸张反射油墨没有吸收的光。纸上油墨能达到的鲜艳颜色更少——饱和的 RGB 蓝、绿、红都落在其外——所以印出来更暗淡。印前处理会经由为该印刷机和纸张制作的 ICC 配置文件转换,例如欧洲铜版纸用 FOGRA39,美国用 GRACoL。本目录的 CMYK 是 CSS 在无配置文件时用于 device-cmyk() 的简单公式——数值正确,但不能当作印刷打样。

转换精确吗?往返转换会丢失数据吗?

转换使用闭式公式,而非查找表近似,往返转换的误差在浮点噪声以内。少数例外都在相应位置注明:OSA-UCS 没有闭式逆变换;Munsell 等图册系统在已发布的级差之间插值;rgb 输出会被裁切到 sRGB 色域内——需要色域外的数值时,请经由 XYZ 或 线性 RGB 转换。

这些转换也经过核验:每个空间都链接到它所实现的论文或规范;凡与 colorjs.io 重叠之处,数值都与之对照测试;摄影机 Log 则与学院官方的 ACES 变换对照。formula-verification.md 记录了每项核对的依据——包括已发表论文本身出错的几处。

如果数值与其他库不同,请先比较取值范围:本库保留每个空间的惯用范围——RGB 0–255、Lab 明度 0–100、色相 0–360——而许多库一律压缩到 0–1。每张卡片都标出了范围;在代码中是 space.oklch.range。

其中哪些能用 CSS 书写?

原生支持 rgb()、hsl()、hwb()、lab()、lch()、oklab()、oklch(),另有 color() 用于 Display P3、Adobe RGB、ProPhoto、线性 sRGB 和 XYZ(D65 与 D50)。CSS 的 rec2020 是纯 2.4 伽马,而不是本目录中 Rec. 2020 所用的 BT.2020 曲线——同样的数值会指向不同的颜色。每个档案的 css 标签页都会以可复制的形式写出当前颜色;CSS 不支持的空间则改以 ICC 配置文件或 LUT 提供。

Pantone、NCS、RAL 在哪里?

它们是授权产品:颜色由所有者出售的数据定义,而不是由公开公式定义——因此没有可实现的公开数学,再分发其色表也不合法。数学公开的近亲则收录在此:Munsell(其 1943 年重新标定已是公开记录)和 RAL Design(直接在 CIELAB 中定义)。经验法则:只要数学曾经公开,它就属于这个收藏。

已复制