Zitat Zitat von Ceos Beitrag anzeigen
Die Farben sind MSB>LSB 5bit R, 6bit G und 5bit B codiert

du könntest also ganz simpel mit maskieren und shiften 3 bytes daraus machen wie du es gewohnt bist

R = (0b1111100000000000 & input) >> 11;
G = (0b0000011111100000 & input) >> 5;
B = (0b0000000000011111 & input);

https://en.wikipedia.org/wiki/List_o...tes#16-bit_RGB
aha, danke!
verstehe ich das richtig:
also z.B. für LightHeliotrop (220, 139, 231):

uint16_t R = (0b1111100000000000 & 220) >> 11;
uint16_t G = (0b0000011111100000 & 139) >> 5;
uint16_t B = (0b0000000000011111 & 231);

uint16_t colorcode=R+G+B;

?

- - - Aktualisiert - - -

hmm, nee, scheint genau anders rum zu arbeiten...

mit der Bitarithmetik komme ich aber nicht zurecht - wie sähe die Umkehrfunktion aus, aus den RGW-Einzelwerten die hex colorcode Zahl?

einfach
R =220 << 11;
G = 139 << 5;
B = 231;
colorcode=R+G+B;

?

PS,
ja, schein zu klappen so rum...
Danke!