0

编码结果

Oklab 颜色

关于 Oklab 颜色

Oklab 颜色是使用明度和两个颜色成分来表示颜色的知觉基础色彩空间。它像 Lab 一样分离明度和色味,并作为较新的模型,让颜色变化更接近视觉感受。

成分含义示例值
L: 明度表示颜色的明亮程度。0% 为黑色,100% 为白色。60%
a表示从绿色到红色的方向。负值偏绿,正值偏红。0.1
b表示从蓝色到黄色的方向。负值偏蓝,正值偏黄。0.1

例如,红色等主要颜色可以表示如下。

颜色Oklab 表示RGB 表示
红色oklab(62.8% 0.2249 0.1258)rgb(255 0 0)
绿色oklab(51.98% -0.1403 0.1077)rgb(0 128 0)
亮绿色oklab(86.64% -0.2339 0.1795)rgb(0 255 0)
蓝色oklab(45.2% -0.0325 -0.3115)rgb(0 0 255)
白色oklab(100% 0 0)rgb(255 255 255)
黑色oklab(0% 0 0)rgb(0 0 0)

要包含透明度,请添加 Alpha 值。例如,半透明红色可以表示为 oklab(62.8% 0.2249 0.1258 / 0.5).

明度、a、b 的处理

明度按 0% 到 100% 的范围处理。低于 0% 的值按 0% 处理,高于 100% 的值会限制在 100%。

ab 使用正数或负数指定。它们的值不会被截断到固定范围,而是作为指定的 Oklab 成分处理。

Oklab 和 Oklch 的区别

Oklab 使用 ab 的直角坐标表示颜色。Oklch 使用与 Oklab 相同的知觉基础,但用彩度和色相表示色味。

Oklab 和 Lab 的区别

Lab 相比,Oklab 在改变色相或彩度时的视觉变化更接近均匀。由于明度和颜色成分被调整为更接近人类知觉,相同幅度的成分变化通常会产生更一致的视觉变化。例如,在插值颜色生成渐变,或只调整彩度时,明亮度和色相不容易出现不自然的偏移。