色调/饱和度/亮度是否提供比 RGB 更小的颜色范围?

平面设计 颜色 RGB 颜色转换 汇丰银行
2022-01-14 04:39:28

RGB 的所有值都应该是唯一且可区分的,这意味着真正有 256*256*256 种颜色。

然而,在 HSL 中,如果 L=0,则 H 和 S 可以是任何东西,但您仍然会得到相同的颜色(黑色)。同样,如果 S=0,则 H 无关紧要,因为您会得到一些纯灰色的阴影。因此,HSL 模型似乎最多提供 256*256*256 - 256*256 - 256 种颜色,或者减少约 0.4% 的颜色。这是真的?

2个回答

是和不是。

是的:

假设每个值都需要整数,它提供的颜色范围更小例如,Photoshop 要求 HSB 值是整数,如果您尝试其他方式,则会对您大喊大叫:

Photoshop 颜色选择器错误

但是,您的数学似乎不对。您在 RGB 的正确轨道上:每个值都可以是 0-255 之间的整数,因此 RGB 色域由 256³ 或 16,581,375 种颜色组成。

对于 HSL,值约束是不同的。H 可以是 0-359,S 可以是 0-100,B 可以是 0-100。因此,唯一 HSL 三元组的数量为 360*101*101,即 3,672,360。这还没有考虑到重复的颜色,我们已经比 RGB 小得多。

我在统计方面不够好,无法计算基于整数的 HSL 的唯一值的数量,所以我什至不会尝试

结果,就会发生颜色冲突。您可以通过检查两个非常接近的 RGB 值的值来亲自尝试。例如,#00AAAA#00AAAB都在 Photoshop 中转换为 180°、100%、67%:

Photoshop颜色选择器比较

不:

Illustrator 比较悠闲。它很高兴并愿意接受 HSB 的十进制值:

插画家颜色选择器

CSS3 也接受hsl()和的十进制值hsla()这种实现使其比 RGB 更精细,它永远不应该接受十进制值。

HSL(色调、饱和度、亮度)和 HSB 是 RGB 颜色模型的衍生颜色模型。它们覆盖相同的颜色范围(如色域),其间的“独特”点数量较少。

RGB 模型定义 256^3 或 16,777,216 点
,HSL/HSB 定义 360*101*101 或 3,672,360 点。

您必须以编程方式找出从 HSL 映射到 RGB 唯一点的点数。不仅您提到的极值点映射到一组 RGB 值。例如,您可以在此处查看饱和度值为 1%(在 HSL 中)的许多重复项。

这就是理论。实际上,大多数设备仍然不能处理/呈现 16.777.216 种“独特且可区分”的颜色,而人眼也不能。因此,在实践中,“独特”值的数量差异通常(并非总是)并不重要。