RGB in INT umrechnen ?

Hallo,

Farb Displays kann man sowohl mit einem RGB(r,g,b) Wert als auch mit einer INT Variablen für die Farbe ansteuern. Nach welchen Regeln wird der RGB Wert aber in eine INT Variable umgerechnet ? Bei der Verwendung entspechender Libraries (in meinem Fall die für MI0283QT2) wird das ja automatisch gemacht, aber wo, habe ich nicht gefunden und wie, kann ich nicht nachvollziehen.

Beipiel : RGB(150,152,156) ergibt als INT -27437

Gruss Kalli

Hmm, das sieht mir nach RGB565 aus, probiers mit was in der Richtung:

int i = (((r >> 3) & 31) << 11) | (((g >> 2) & 63) << 5) | ((b >> 3) & 31);

in anderen Worten: es werden die höherwertigen 5 bit Rot, 6 bit Grün und 5 bit Blau genommen und aneinander gefügt. Den negativen Wert erhälst Du, weil Du die Variable nicht als "unsigned int" definiert hast. Viele Grüße Uwe

#define _RGB565(r, g, b) ((uint16_t)(((r >> 3) << 11)| ((g >> 2) << 5)| (b >> 3)))

DANKE für die schnellen Antworten...

Gruss Kalli