Wie konvertiere ich einen RGB-Farbwert in eine einfache Dezimalzahl?
Also ich habe: RGB (255,255,255) ist weiß Sein Dezimaläquivalent ist: 16777215
Ich habe versucht zu denken, es könnte nur sein:
%Vor%Obwohl das nicht funktioniert.
Wer kennt den Algorithmus / die Gleichung, um RGB (oder rgba) in Dezimal zu konvertieren?
Ganzzahlige RGB-Zahlen werden typischerweise als drei verschiedene Bytes behandelt, wobei das linke (höchste) Byte rot, das mittlere Byte grün und das rechte (niedrigste) Byte blau ist. Sie können die Werte dieser einzelnen Bytes wie folgt abrufen:
%Vor%Sie können eine Farbe aus ihren Komponenten neu erstellen, indem Sie die Bytes zurückschieben:
%Vor% Ersetzen Sie in Ihrem Fall einfach components.r
(etc) durch Ihre tatsächlichen Variablen.
(Ich denke, das ist die richtige Reihenfolge für die r, g, b Werte)
Aktualisieren
Ich habe gerade nach Browser-Anwendungen gesucht und die Reihenfolge falsch gewählt. Die richtige Formel für Browser (HTML + CSS + Javascript lesen) lautet also:
%Vor%Angenommen, r, g, b Werte & lt; = 255
Andere APIs können eine andere Reihenfolge für die r, g, b Werte erwarten. Ich erinnere mich zumindest an eine, die die Reihenfolge umgekehrt hat (nach meiner ursprünglichen Antwort), aber ich denke, welche ist es im Moment.
Sie müssen das R um 16 nach links verschieben, das G um 8 nach links oder beide nach B. Betrachten Sie die Werte als Bits und alles wird klar:
R 255 = 11111111B G 255 = 11111111B B 255 = 11111111B
Shift R 16: 111111110000000000000000 Shift G 8: 000000001111111100000000
oder in B: 111111111111111111111111
In Dezimal konvertieren: 16777215
Tags und Links javascript c++ binary colors