Go Down

Topic: RGB in INT umrechnen ? (Read 892 times) previous topic - next topic

Kalli

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

Joghurt

#1
Feb 17, 2011, 08:45 pm Last Edit: Feb 17, 2011, 08:46 pm by Joghurt Reason: 1
Hmm, das sieht mir nach RGB565 aus, probiers mit was in der Richtung:

Code: [Select]
int i = (((r >> 3) & 31) << 11) | (((g >> 2) & 63) << 5) | ((b >> 3) & 31);

uwefed

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

Megaionstorm

#3
Feb 18, 2011, 01:38 am Last Edit: Feb 18, 2011, 01:42 am by Megaionstorm Reason: 1
Code: [Select]
#define _RGB565(r, g, b) ((uint16_t)(((r >> 3) << 11)| ((g >> 2) << 5)| (b >> 3)))
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Kalli

DANKE für die schnellen Antworten...

Gruss Kalli

Go Up