据我所知,HSL和HSB颜色空间非常相似,两者都使用相同的0-360色轮作为色调,并使用相同的0-1值进行饱和.它们之间的一个区别是在HSB模型中你有亮度,其中0是黑色,1是全强度的颜色,而在HSL中你有亮度/亮度,其中0仍然是黑色但1是白色.
在.NET Color结构采用RGB空间,但GetHue(),GetSaturation()和GetBrightness()功能.
这里的文档令人困惑.用于GetBrightness():
/// <summary>Gets the hue-saturation-brightness (HSB) brightness value for this
/// System.Drawing.Color structure.</summary>
Run Code Online (Sandbox Code Playgroud)
好吧,这很有意义,.Net似乎正在使用HSB ......
/// <returns>The brightness of this System.Drawing.Color. The brightness ranges
/// from 0.0 through 1.0, where 0.0 represents black and 1.0 represents white.
/// </returns>
Run Code Online (Sandbox Code Playgroud)
呃......所以最大值代表白色,而不是最亮的颜色.尽管他们的文档和命名始终指的是亮度,但我很确定返回的值实际上是亮度/亮度,即.Net实际上使用HSL模型而不是HSB.
谁能证实这一点?它是文档中的错误GetBrightness(),错误,还是我以某种方式误解了理论?