0x80000000L+0xbbggrr??? Farbe wird doch abgespeichert als 0x00rrggbb, oder?
-
Folgende Angaben stehen mir zur Verfügung:
#define Color_Extended 0x80000000L
Angabe der tatsächlichen Farbe als RGB-Wert in der Form:
Color_Extended + 0x00bbggrrWelchen Vorteil verschafft mir die obige Addition?
Meiner Meinung nach wird die Farbe in einem Binärcode als 0xrrggbb00 geschrieben, oder? Das hab ich mit dem nachfolgenden Programm getestet und bewiesen:#include <iostream.h> #include <stdio.h> #include <string.h> #include <windows.h> typedef DWORD COLORREF; int main() { FILE * f; char *RotGruenBlau; RotGruenBlau = " 2;255; 5"; COLORREF color; int r, g, b; sscanf(RotGruenBlau,"%i;%i;%i",&r,&g,&b); color = RGB(r,g,b); f = fopen("color.txt","wb+"); fwrite(&color,sizeof(COLORREF),1,f); fclose(f); return 0; }
Was meint ihr dazu???
-
ga_un schrieb:
Meiner Meinung nach wird die Farbe in einem Binärcode als 0xrrggbb00 geschrieben, oder?
Binär? Nein, 0x liefert einen Hexadezimalwert zurück, sprich der Wert ist Hexadezimal und nicht Binär.
Code-Hacker
-
ga_un schrieb:
Meiner Meinung nach wird die Farbe in einem Binärcode als 0xrrggbb00 geschrieben, oder? Das hab ich mit dem nachfolgenden Programm getestet und bewiesen:
Nicht wirklich. Du hast nur bewiesen, dass das rr-Byte als erstes in die Datei geschrieben wird. Das sagt aber nichts darüber aus, an welcher Stelle deines 4-Byte-Wertes das rr-Byte steht.
Vgl. Little Endian / Big Endian
P.S.:
0x00bbggrr ist schon richtig.