True Color (24-Bit) bei Wikipedia wird im zugehörigen Teil als beschrieben
24 Bit verwendet fast immer 8 Bit von R, G und B. Ab 2018 wird die 24-Bit-Farbtiefe von praktisch jedem Computer- und Telefondisplay sowie von den meisten Bildspeicherformaten verwendet. In fast allen Fällen, in denen 32 Bit pro Pixel vorhanden sind, werden 24 für die Farbe verwendet und die restlichen 8 sind der Alphakanal oder nicht verwendet.
2 24 ergibt 16.777.216 Farbabweichungen. Das menschliche Auge kann bis zu zehn Millionen Farben unterscheiden [10], und da der Umfang eines Displays kleiner ist als der Bereich des menschlichen Sehens, sollte dies bedeuten, dass dieser Bereich mit mehr Details abgedeckt wird, als wahrgenommen werden kann. ...
...
Macintosh-Systeme bezeichnen 24-Bit-Farben als "Millionen von Farben". Der Begriff "True Color" wird manchmal verwendet, um die Bezeichnung "Direct Color" in diesem Artikel zu bezeichnen. [13] Es wird auch häufig verwendet, um auf alle Farbtiefen größer oder gleich 24 zu verweisen.
Alle 16.777.216 Farben
Aufgabe
Schreiben Sie ein Programm, das alle 16.777.216 Farbvariationen innerhalb eines Arrays als Zeichenfolgen in der CSS- rgb()
Funktion generiert und zurückgibt
5.1. Die RGB-Funktionen:
rgb()
undrgba()
Die
rgb()
Funktion definiert eine RGB-Farbe durch direkte Angabe der Kanäle Rot, Grün und Blau. Ihre Syntax lautet:rgb() = rgb( <percentage>{3} [ / <alpha-value> ]? ) | rgb( <number>{3} [ / <alpha-value> ]? ) <alpha-value> = <number> | <percentage>
Die ersten drei Argumente geben die Rot-, Grün- und Blaukanäle der Farbe an.
0%
stellt den Minimalwert für diesen Farbkanal in der sRGB-Farbskala dar und100%
stellt den Maximalwert dar. A<number>
ist äquivalent zu a<percentage>
, aber mit einem anderen Bereich:0
stellt wieder den Minimalwert für den Farbkanal dar, aber255
stellt das Maximum dar. Diese Werte ergeben sich aus der Tatsache, dass viele Grafikmodule die Farbkanäle intern als ein einzelnes Byte speichern, das Ganzzahlen zwischen 0 und 255 enthalten kann. Bei Implementierungen sollte die Präzision des Kanals berücksichtigt werden, die nach Möglichkeit erstellt oder berechnet wurde. Ist dies nicht möglich, sollte der Kanal mit der höchsten verwendeten Genauigkeit auf den nächsten Wert gerundet werden. Wenn zwei Werte gleich nahe beieinander liegen, wird aufgerundet.Das letzte Argument, das
<alpha-value>
, gibt das Alpha der Farbe an. Bei Angabe von a reicht<number>
der nützliche Wertebereich von0
(für eine vollständig transparente Farbe) bis1
(für eine vollständig undurchsichtige Farbe). Wenn als a angegeben,0%
stellt dies eine vollständig transparente Farbe dar, während dies100%
eine vollständig opake Farbe darstellt. Wenn nicht angegeben, ist der Standardwert100%
.Werte außerhalb dieser Bereiche sind nicht ungültig, sondern werden zum Zeitpunkt des Berechnens auf die hier definierten Bereiche beschränkt.
rgb()
Unterstützt aus älteren Gründen auch eine alternative Syntax, bei der alle Argumente durch Kommas getrennt werden:rgb() = rgb( <percentage>#{3} , <alpha-value>? ) | rgb( <number>#{3} , <alpha-value>? )
Auch aus älteren Gründen gibt es eine
rgba()
Funktion mit identischer Grammatik und Verhaltensweisergb()
.
oder RGB Hexadezimalschreibweise #RRGGBB
Format
5.2. Die hexadezimalen RGB-Notationen:
#RRGGBB
Mit der hexadezimalen CSS- Farbnotation kann eine Farbe angegeben werden, indem die Kanäle als Hexadezimalzahlen angegeben werden, ähnlich wie Farben häufig direkt im Computercode geschrieben werden. Es ist auch kürzer als die gleiche Farbe in
rgb()
Notation zu schreiben .Die Syntax von a
<hex-color>
ist ein<hash-token>
Token, dessen Wert aus 3, 4, 6 oder 8 hexadezimalen Ziffern besteht. Mit anderen Worten, eine hexadezimale Farbe wird als Hash-Zeichen "#" geschrieben, gefolgt von einer Anzahl von Ziffern 0-9 oder Buchstaben af (der Fall der Buchstaben spielt keine Rolle -#00ff00
ist identisch mit#00FF00
).Die Anzahl der angegebenen Hexadezimalstellen bestimmt, wie die Hexadezimalnotation in eine RGB-Farbe decodiert wird:
6 Stellen
Das erste Ziffernpaar, das als Hexadezimalzahl interpretiert wird, gibt den roten Kanal der Farbe an, wobei
00
der minimale Wert undff
(255 in Dezimalzahl) der maximale Wert angegeben werden . Das nächste Ziffernpaar, das auf die gleiche Weise interpretiert wird, gibt den grünen Kanal an, und das letzte Ziffernpaar gibt den blauen Kanal an. Der Alpha-Kanal der Farbe ist vollständig undurchsichtig.BEISPIEL 2
Mit anderen Worten,#00ff00
stellt die gleiche Farbe dar wiergb(0 255 0)
(ein Limonengrün).
Siehe Redaktionsentwurf des CSS-Farbmoduls Level 4
Beispiele
CSS- rgb()
Funktion ( Leerzeichen können zB durch Komma ersetzt werden rgb(0 255 0)
)
// `rgb()` `<percentage>` as strings in resulting array
['rgb(0%,0%,0%)', ...,'rgb(0%,255%,0)', ...'rgb(255,255,255)']
// `rgb()` `<number>` as strings in resulting array
['rgb(0,0,0)', ...,'rgb(0,255,0)', ...'rgb(255,255,255)']
CSS RGB hexadezimale Notation RRGGBB
// RGB hexadecimal notation as strings in resulting array
['#000000', ...,'#00ff00', ...'#ffffff']
Gewinnkriterien
Wenigste zum Schreiben des Programms verwendete Bytes.