Ich schreibe eine kleine Anwendung zur Bildmanipulation mit C.
1 zu 1 kopie usw. kann ich erzeugen. Allerdings, ich muss noch die Farben manipulieren.
z.B. die Sättigung von Blau verdoppeln. Dafür muss ich die Farbtabelle einlessen.
Die Frage ist; Wie soll ich die Farbtabelle einlesen?
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
int c, z[2], i;
int breite, hoehe, aufloesung, farbtiefe;
FILE *in;
FILE *out;
int *tmp;
in = fopen(argv[1], "rb");
if(argc == 3){
// prüfen ob es eine Bilddatei ist und kopieren
if( ((z[0] = fgetc(in)) == 'B') && ((z[1] = fgetc(in)) == 'M')) {
printf("\nEs handelt sich um eine .bmp Bilddatei.");
out = fopen(argv[2], "wb");
fputc(z[0], out);
fputc(z[1], out);
while( (c=fgetc(in)) != EOF){
fputc(c, out);
}
}
fclose(out);
}
//Aufloesung in pixel
fseek(in, 18L, 0);
fread(&breite, sizeof(long), 1, in);
fseek(in, 22L, 0);
fread(&hoehe, sizeof(long), 1, in);
aufloesung = breite * hoehe;
fseek(in, 28L, 0);
farbtiefe = fgetc(in);
printf("\nFarbtiefe: %d Bit\n", farbtiefe);
fclose(in);
return 0;
}