gpt4 book ai didi

c++ - HSB vs HSL vs HSV

转载 作者:IT老高 更新时间:2023-10-28 12:37:32 25 4
gpt4 key购买 nike

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

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

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

  1. HSB 和 HSL 一样吗?

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

  3. 我发现了许多不同的计算这些值的方法,谁能告诉我最快的方法吗?

最佳答案

Is HSB same as HSL?

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

基本上 HSB 和 HSL 的 Hue 是一样的,只是 Saturation 取不同的值,Brightness 和 Lightness 也不同。

If not, why isn't there an HSBL or even HSBLV?

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

I find many different methods of calculating these values, can someone show me the FASTEST ones?

这里有一个类似的问题,用于从 RGB 计算 HSB:Fast, optimized and accurate RGB <-> HSB conversion code in C .有一个Java implementation there这可能会有所帮助。 HSB/HSV 和 HSL 之间的转换见 HSL vs HSB vs HSV .

关于c++ - HSB vs HSL vs HSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15668623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com