私が理解しているように、HSL と HSB の色空間は非常に似ており、どちらも色相に同じ 0 ~ 360 のカラー ホイールを使用し、彩度に同じ 0 ~ 1 の値を使用します。それらの違いの 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 は実際には HSB ではなく HSL モデルを使用しています。
誰でもこれを確認できますか?ドキュメントのエラーですか、エラーGetBrightness()
ですか、それとも理論を誤解していますか?