Hallo,
mal eine ganz dumme Frage.
Ich programmiere ein S65 Display und habe eine Library an meine Hardware
angepasst. Darin sind ca. 6 Farben (16Bit) definiert.
z.B. schwarz: 0x0000
weiß: 0xFFFF
rot: 0xF800
Wie kann ich mir zum Beispiel die Farbe orange erzeugen ?
Ich will nicht jede Kombination ausprobieren und schauen, was das
Display zeigt.
Kennt jemand eine Tabelle, wo die einzelnen Farben zu den jeweiligen
16Bit zugeordnet sind ?
Danke für die Hilfe !
Nimm eine der zahlreich verfügbaren 24-Bit-Farbtabellen* fürs Webdesign,
suche Dir den passenden Farbwert aus, streiche die entsprechenden LSBs
und kombiniere die resultierenden Werte zu Deinem 16-Bit-Wert.
Beispiel:
0xFF6633
76543210 -> 76543210
R = 0xFF = 0b11111111 0b11111---
G = 0x66 = 0b01100110 0b01100---
B = 0x33 = 0b00110011 0b00110---
R 11111
G 01100
B 00110
-111 1101 1000 0110
7 D 8 6
0x7D86
Dies Beispiel ist für 15-Bit-Farben (5 Bit je Grundfarbe), bei einer
ungleichmäßigen Verteilung musst Du das Schema entsprechend anpassen.
Meistens hat G dann sechs statt fünf Bits.
*) http://www.colorschemer.com/online.html
Für den Anfang gehst du so vor wie Rufus es sagte, dann musst du aber
dein Orange fintetunen auf das Display da dieses farbverfälschend ist.
Das Makro RGB(r,g,b) wandelt einen 24 Bit Farbwert als 3 Bytes für
Rot,Grün,Blau in den für das S65 gültigen 16 Bit Farbwert um. Dabei
entfernt es die LSBs.
Gruß Hagen