我正在编写一个基于C++的基础图形API,其中包含一个颜色类。因此,我决定查看微软的.NET框架,并注意到他们的Color类具有HSB函数。
然后,我开始研究确定是否应该在我的类中提供HSB、HSL或HSV或它们全部都提供。
所以,我有三个关于HSB、HSL、HSV的问题:
HSB和HSL相同吗?
如果不是,为什么没有HSBL甚至HSBLV?
我发现许多不同的计算这些值的方法,有人能向我展示最快的方法吗?
我正在编写一个基于C++的基础图形API,其中包含一个颜色类。因此,我决定查看微软的.NET框架,并注意到他们的Color类具有HSB函数。
然后,我开始研究确定是否应该在我的类中提供HSB、HSL或HSV或它们全部都提供。
所以,我有三个关于HSB、HSL、HSV的问题:
HSB和HSL相同吗?
如果不是,为什么没有HSBL甚至HSBLV?
我发现许多不同的计算这些值的方法,有人能向我展示最快的方法吗?
原本,“亮度”和“明度”的区别是,“亮度”用于减色,而“明度”用于加色。如果您的程序正在处理CMYK系统等减色,则最好使用HSB;否则,最好使用HSL。
如果您正在进行UI设计,使用HSL比HSV更合理,因为您需要控制颜色调色板的亮度(L)值。