我正在将Color类作为c++中非常基本的图形API的一部分。因此,我决定看一下Microsoft的.NET框架,并注意到它们的Color类具有HSB的功能。
然后,我开始进行研究以确定我是否应该在类提供HSB,HSL或HSV或全部。
因此,我对HSB,HSL,HSV有3个问题:
最佳答案
不,HSB与HSV相同,但HSL不同。所有这些都用作表示RGB颜色的友好方式。维基百科上有关HSL和HSV的文章解释了使用彩色标记的区别:HSL and HSV
基本上,HSB和HSL的色相相同,但“饱和度”取不同的值,“亮度”和“亮度”也不同。
我不明白这一点。 HSB/HSV和HSL都可以代表任何RGB颜色。由于B和L的定义方式,因此不可能单独拥有它们。给定的HSB亮度和饱和度与固定的亮度相关。实际上,它们之间的转换非常容易。
对于从RGB计算HSB,这里有一个类似的问题:Fast, optimized and accurate RGB <-> HSB conversion code in C那里有一个Java实现可能会有所帮助。有关在HSB/HSV和HSL之间进行转换的信息,请参见HSL vs HSB vs HSV
关于c++ - HSB vs HSL vs HSV,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15668623/