HSB vs HSL vs HSV

新手上路,请多包涵

我正在制作一个 Color 类作为 C++ 中非常基本的图形 API 的一部分。所以我决定看一下微软的 .NET 框架,并注意到他们的 Color 类具有 HSB 的功能。

然后我开始了一项研究,以确定我是否应该在课堂上提供 HSB、HSL 或 HSV 或所有这些。

所以,我有 3 个关于 HSB、HSL、HSV 的问题:

  1. HSB 和 HSL 一样吗?

  2. 如果没有,为什么没有 HSBL 甚至 HSBLV?

  3. 我找到了许多不同的计算这些值的方法,有人可以告诉我最快的方法吗?

原文由 Giwrgos Tsopanoglou 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

HSB 和 HSL 一样吗?

不,HSB 与 HSV 相同,但 HSL 不同。所有这些都被用作表示 RGB 颜色的友好方式。关于 HSL an HSV 的 Wikipedia 文章使用颜色圆柱体解释了差异: HSL 和 HSV

基本上,HSB 和 HSL 的色调是相同的,但饱和度取不同的值,亮度和明度也不同。

如果没有,为什么没有 HSBL 甚至 HSBLV?

我不明白这一点。 HSB/HSV 和 HSL 都可以表示任何 RGB 颜色。由于 B 和 L 的定义方式不同,因此无法独立拥有 B 和 L。给定的 HSB 亮度和饱和度与固定的亮度相关联。事实上,它们之间的转换非常容易。

我找到了许多不同的计算这些值的方法,有人可以告诉我最快的方法吗?

这里有一个类似的问题,用于从 RGB 计算 HSB: Fast,optimized and accuracy RGB <-> HSB conversion code in C 。那里有一个 Java实现 可能会有所帮助。有关 HSB/HSV 和 HSL 之间的转换,请参阅 HSL vs HSB vs HSV

原文由 JoseV 发布,翻译遵循 CC BY-SA 4.0 许可协议

HSB 和 HSV 相同,但 HSL 不同。

  • HSB 代表色相、饱和度、亮度。
  • HSV 代表色相、饱和度、值。
  • HSL 代表色相、饱和度、亮度。

这是 与维基百科 的视觉差异: hsl v hsv 比较显示多个颜色图

原文由 user14638282 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题