Farbpalette Bitmap
-
Hallo zusammen,
ich bin gerade dabei ein Programm zu schreiben, das eine Bitmap einliest. So weit alles OK, ich habe nur ein Problem mit der eingelesenen Farbpalette. Ich habe eine Struktur dafür geschrieben und die Daten werden in ein dynamisches Array eingelesen. So weit so gut, nur ich kann nicht entschlüsseln was mir da genau gegeben wird.
Die Bitmap: 640 x 480, pro Pixel 8 bit
typedef struct tagRGBQUAD { unsigned char rgbBlue; unsigned char rgbGreen; unsigned char rgbRed; unsigned char rgbReserved; } __attribute__((__packed__)) RGBQUAD; RGBQUAD *farbPalette = NULL; farbPalette = (RGBQUAD *)malloc(laenge_palette * sizeof(RGBQUAD)); for (i = 0; i < 256; i++){ checkfile = fread(&farbPalette[i], 1, sizeof(RGBQUAD), fileInput); if (checkfile != sizeof(RGBQUAD)){ printf("fread fehler"); fclose(fileInput); return 0; } }
Ich habe zwei Ausgaben geschrieben.
for (i= 0; i<256;i++){ printf("%d %d %d\n", farbPalette[i].rgbBlue, farbPalette[i].rgbGreen, farbPalette[i].rgbRed); } for (i= 0; i<256;i++){ printf("%d\n", farbPalette[i]); }
Zur 1.:
0 0 0
51 0 0
102 0 0
153 0 0 usw.zur 2.:
0
51
102
153 usw.Kann mir einer erklären wie dies zustande kommt?
Das müssten ja die Angaben der jeweiligen Farben der Bitmap sein?danke und freundliche Grüße.
-
Immer wieder gut:
"Keine Ahnung was das Programm macht oder machen soll, aber alles OK"Den Header deiner BMP-Datei hast du gelesen und ausgewertet
Denn sonst weisst du ja nicht wie du die folgenden Daten deuten sollst.Ein Paar Grundkenntnisse bezüglich der Bildung der Farben auf dem Monitor können nicht schaden. z.B.: Wie bekommt man rot, gelb, oder weiss oder schwarz auf einem Farbbildschirm dargestellt
Bin noch nicht richtig wach: Passt die Beschreibung deiner BMP-Datei wirklich zu deinem Quelltext
Ich vermute, nein. Da sind zwar mögliche BMP-Varianten beschrieben, aber entweder du möchtest etwas anderes als was im Quelltext steht oder umgekehrt
MfG f.-th.