Pages: [1]   Go Down
Author Topic: RGB in INT umrechnen ?  (Read 817 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Full Member
***
Karma: 8
Posts: 153
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Weinsberg, Germany
Offline Offline
God Member
*****
Karma: 3
Posts: 773
A Coder's Tale
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Code:
int i = (((r >> 3) & 31) << 11) | (((g >> 2) & 63) << 5) | ((b >> 3) & 31);
« Last Edit: February 17, 2011, 02:46:50 pm by Joghurt » Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 257
Posts: 21460
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

0
Offline Offline
Edison Member
*
Karma: 20
Posts: 1980
Wo ein Wille ist, da ist auch ein Weg !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
#define _RGB565(r, g, b) ((uint16_t)(((r >> 3) << 11)| ((g >> 2) << 5)| (b >> 3)))
« Last Edit: February 17, 2011, 07:42:37 pm by Megaionstorm » Logged

Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

0
Offline Offline
Full Member
***
Karma: 8
Posts: 153
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

DANKE für die schnellen Antworten...

Gruss Kalli
Logged

Pages: [1]   Go Up
Jump to: