我正在制作一个颜色类,作为c++中一个非常基本的图形API的一部分。因此,我决定看一看微软的.NET框架,并注意到他们的Color类为HSB提供了功能。
然后,我开始了一项研究,以确定我是否应该提供HSB,HSL或HSV,或所有他们在我的班级。
因此,我对HSB,HSL,HSV有三个问题:
发布于 2013-10-26 03:39:31
HSB和HSL一样吗?
不是的。HSB与HSV相同,但HSL不同。所有这些都被用作表示RGB颜色的友好方法。维基百科关于HSL和HSV的文章用彩色圆柱体:HSL和HSV解释了它们之间的区别。
HSB和HSL的色度基本相同,但饱和度的取值不同,亮度和亮度也不同。
如果没有,为什么没有HSBL,甚至是HSBLV?
我不明白重点。HSB/HSV和HSL都可以表示任何RGB颜色。B和L独立是不可能的,因为它们的定义方式。给定的HSB亮度和饱和度与固定的亮度相关联。事实上,它们之间的转换是非常容易的。
我发现了很多不同的计算方法,有人能告诉我最快的方法吗?
这里有一个类似的问题用于从RGB计算HSB:Fast, optimized and accurate RGB <-> HSB conversion code in C。有一个那里的Java实现可能会有帮助。有关HSB/HSV和HSL之间的转换,请参见HSL对HSB与HSV。
发布于 2019-08-31 15:36:41
原来亮度和光泽度的区别是。“亮度”用于减色,“亮度”用于添加颜色。现在,如果您的程序处理的是像CMYK系统这样的减色,那么最好使用HSB,否则它将是更好的HSL。
发布于 2020-12-06 23:41:49
https://stackoverflow.com/questions/15668623
复制相似问题