Alle RGB-Werte sollten eindeutig und unterscheidbar sein, was bedeutet, dass es wirklich 256 * 256 * 256 Farben gibt.
Wenn in HSL jedoch L = 0 ist, können H und S alles sein, aber Sie erhalten immer noch die gleiche Farbe (schwarz). In ähnlicher Weise spielt H keine Rolle, wenn S = 0 ist, da Sie einen reinen Grauton erhalten. Es scheint also, dass das HSL-Modell bestenfalls 256 * 256 * 256 - 256 * 256 - 256 Farben oder ~ 0,4% weniger Farben bietet. Ist das wahr?
color
rgb
color-conversion
hsb
1279343
quelle
quelle
Antworten:
Ja und nein.
Ja:
Es bietet einen kleineren Farbbereich, vorausgesetzt, für jeden Wert sind Ganzzahlen erforderlich . In Photoshop müssen HSB-Werte beispielsweise ganzzahlig sein, und Sie werden angeschrien, wenn Sie etwas anderes versuchen:
Ihre Mathematik scheint jedoch nicht zu stimmen. Mit RGB sind Sie auf dem richtigen Weg: Jeder Wert kann eine Ganzzahl von 0 bis 255 sein, sodass der RGB-Farbumfang aus 256³ oder 16.581.375 Farben besteht.
Für HSL sind die Werteinschränkungen unterschiedlich. H kann 0-359 sein, S kann 0-100 sein und B kann 0-100 sein. Die Anzahl der eindeutigen HSL-Tripletts beträgt also 360 * 101 * 101 oder 3.672.360. Doppelte Farben werden noch nicht berücksichtigt und wir sind bereits deutlich kleiner als RGB.
Ich bin nicht gut genug in Statistiken, um die Anzahl der eindeutigen Werte für ganzzahlige HSL zu berechnen, daher werde ich es nicht einmal versuchen
Infolgedessen kommt es zu einer Farbkollision. Sie können dies selbst versuchen, indem Sie den Wert zweier sehr enger RGB-Werte überprüfen. Zum Beispiel,
#00AAAA
und#00AAAB
sind beide auf 180 ° umgewandelt, 100%, 67% in Photoshop:Nein:
Illustrator ist etwas entspannter. Es ist glücklich und bereit, Dezimalwerte für HSB zu akzeptieren:
CSS3 akzeptiert auch Dezimalwerte für
hsl()
undhsla()
. Diese Implementierung ist es Art und Weise noch genauer als RGB, die nie Dezimalwerte annehmen sollte.quelle
HSL (Farbton, Sättigung, Helligkeit ) und HSB sind abgeleitete Farbmodelle des RGB-Farbmodells. Sie decken den gleichen Farbbereich (wie in der Farbskala) mit einer geringeren Anzahl von "markanten" Punkten dazwischen ab.
Das RGB-Modell definiert 256 ^ 3 oder 16.777.216 Punkte
und HSL / HSB definiert 360 * 101 * 101 oder 3.672.360 Punkte.
Sie müssten programmgesteuert herausfinden, wie viele Punkte von der HSL-Karte auf eindeutige RGB-Punkte abgebildet werden. Nicht nur die von Ihnen erwähnten Extrempunkte werden einem einzelnen Satz von RGB-Werten zugeordnet. Zum Beispiel gibt es auch viele Veröffentlichungen für einen Sättigungswert von 1% (in HSL), wie Sie hier überprüfen können .
Das ist die Theorie. In der Praxis sind die meisten Geräte immer noch nicht in der Lage, 16.777.216 "eindeutige und unterscheidbare" Farben zu verarbeiten / darzustellen, und das menschliche Auge kann dies auch nicht. In der Praxis spielt der Unterschied in der Anzahl der "unterscheidenden" Werte oft (nicht immer) keine Rolle.
quelle