Hallo,
ich habe ein Farbbild im ppm-Format vorliegen und möchte dieses in ein Graustufenbild umwandeln. Der Text zu diesem ppm-Bild liegt im ASCII-Code vor und ich erhalte folgendes, wenn ich es im Texteditor öffne:
Folgendes habe ich versucht, um das Bild umzuwandeln:
Dabei treten zwei Probleme auf:
1) Die Kopfzeile wird nicht in die neue Datei übernommen. Wenn ich das Programm wie oben angegeben ausführe, steht in der Textdatei:
(Diese 122 ist mehrmals eingerückt, das wird hier aber nicht angezeigt)
2) Ich habe die Kopfzeile dann manuell eingefügt und die erste Zahl(122) an der richtigen Stelle eingefügt. Ich hatte nun zwar eine ppm-Datei, allerdings füllt das neue Bild die entsprechende Fläche nicht komplett aus. Das umgewandelte Graustufenbild taucht jetzt drei mal nebeneinander im ersten Drittel des Bildes auf, während der untere Abschnitt schwarz ist.
Ich wäre sehr dankbar, wenn mir jemand bei diesen beiden Problemen weiterhelfen kann.
Vielen Dank im Voraus!
ich habe ein Farbbild im ppm-Format vorliegen und möchte dieses in ein Graustufenbild umwandeln. Der Text zu diesem ppm-Bild liegt im ASCII-Code vor und ich erhalte folgendes, wenn ich es im Texteditor öffne:
Die eigentliche Datei ist natürlich viel länger. Ich habe hier nur die ersten Zeilen hineinkopiert.P3
# Created by GIMP version 2.10.0 PNM plug-in
500 539
255
187
107
74
181
101
68
189
109
76
191
111
78
184
104
69
...
Folgendes habe ich versucht, um das Bild umzuwandeln:
C:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int number1;
int number2;
int number3;
FILE *in;
in = fopen("image.ppm", "rb");
FILE *out;
out = fopen("newimage.ppm", "wb");
fseek(in, 60, SEEK_SET);
fseek(out, 60, SEEK_SET);
while(!feof(in)) {
fscanf(in,"%d",&number1);
fscanf(in,"%d",&number2);
fscanf(in,"%d",&number3);
fprintf(out,"%d\n",(number1+number2+number3)/3);
}
fclose(in);
fclose(out);
return 0;
}
Dabei treten zwei Probleme auf:
1) Die Kopfzeile wird nicht in die neue Datei übernommen. Wenn ich das Programm wie oben angegeben ausführe, steht in der Textdatei:
(Diese 122 ist mehrmals eingerückt, das wird hier aber nicht angezeigt)
Ich wollte die ersten 60 Bytes unverändert lassen, da sie Teil der Kopfzeile stehen, stattdessen werden sie durch Leerzeichen ersetzt.122
116
124
126
119
127
133
...
2) Ich habe die Kopfzeile dann manuell eingefügt und die erste Zahl(122) an der richtigen Stelle eingefügt. Ich hatte nun zwar eine ppm-Datei, allerdings füllt das neue Bild die entsprechende Fläche nicht komplett aus. Das umgewandelte Graustufenbild taucht jetzt drei mal nebeneinander im ersten Drittel des Bildes auf, während der untere Abschnitt schwarz ist.
Ich wäre sehr dankbar, wenn mir jemand bei diesen beiden Problemen weiterhelfen kann.
Vielen Dank im Voraus!