据我了解,HSL 和 HSB 色彩空间非常相似,都使用相同的 0-360 色轮作为色调,使用相同的 0-1 值作为饱和度。它们之间的一个区别是,在 HSB 模型中,您有亮度,其中 0 是黑色,1 是全强度的颜色,而在 HSL 中,您有亮度/亮度,其中 0 仍然是黑色,但 1 是白色。
.netColor
结构使用 RGB 空间,但具有GetHue()
,GetSaturation()
和GetBrightness()
功能。
这里的文档令人困惑。对于GetBrightness()
:
/// <summary>Gets the hue-saturation-brightness (HSB) brightness value for this
/// System.Drawing.Color structure.</summary>
好的,这是有道理的,.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>
呃......所以最大值代表白色,而不是最亮的颜色。尽管他们的文档和命名始终是指亮度,但我很确定返回的值实际上是lightness/luminosity,即 .Net 实际上使用 HSL 模型而不是 HSB。
谁能证实这一点?是文档中的错误,中的错误GetBrightness()
,还是我以某种方式误解了理论?