RGB 的所有值都应该是唯一且可区分的,这意味着真正有 256*256*256 种颜色。
然而,在 HSL 中,如果 L=0,则 H 和 S 可以是任何东西,但您仍然会得到相同的颜色(黑色)。同样,如果 S=0,则 H 无关紧要,因为您会得到一些纯灰色的阴影。因此,HSL 模型似乎最多提供 256*256*256 - 256*256 - 256 种颜色,或者减少约 0.4% 的颜色。这是真的?
RGB 的所有值都应该是唯一且可区分的,这意味着真正有 256*256*256 种颜色。
然而,在 HSL 中,如果 L=0,则 H 和 S 可以是任何东西,但您仍然会得到相同的颜色(黑色)。同样,如果 S=0,则 H 无关紧要,因为您会得到一些纯灰色的阴影。因此,HSL 模型似乎最多提供 256*256*256 - 256*256 - 256 种颜色,或者减少约 0.4% 的颜色。这是真的?
是和不是。
假设每个值都需要整数,它提供的颜色范围更小。例如,Photoshop 要求 HSB 值是整数,如果您尝试其他方式,则会对您大喊大叫:
但是,您的数学似乎不对。您在 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%:
Illustrator 比较悠闲。它很高兴并愿意接受 HSB 的十进制值:
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 种“独特且可区分”的颜色,而人眼也不能。因此,在实践中,“独特”值的数量差异通常(并非总是)并不重要。