Jak rozumiem, HSL and HSB colour spaces są bardzo podobne, obie używają tego samego koła kolorów 0-360 dla odcienia i tej samej wartości 0-1 dla nasycenia. Jedną z różnic między nimi jest to, że w modelu HSB masz jasność, gdzie 0 jest czarne, a 1 jest kolorem przy pełnej intensywności, podczas gdy w HSL masz jasność/jasność, gdzie 0 jest wciąż czarne, a 1 jest białe.Czy struktura .Net Color używa przestrzeni kolorów HSB lub HSL?
.NET Color
struct korzysta z przestrzeni RGB, ale ma GetHue()
, GetSaturation()
i GetBrightness()
funkcje.
Dokumentacja tutaj jest myląca. Dla GetBrightness()
:
/// <summary>Gets the hue-saturation-brightness (HSB) brightness value for this
/// System.Drawing.Color structure.</summary>
Ok, więc sensowne, wydaje się być za pomocą 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>
Er ... więc wartość max reprezentuje białe, zamiast najjaśniejszego koloru. Pomimo faktu, że ich dokumenty i nazwy konsekwentnie odnoszą się do jasności jestem prawie pewien, że zwrócona wartość jest w rzeczywistości jasność/luminancja, tj. .Net faktycznie używa modelu HSL, a nie HSB.
Czy ktoś może to potwierdzić? Czy jest to błąd w dokumentacji, błąd w GetBrightness()
, czy też w jakiś sposób nie rozumiem tej teorii?