neu hier, erster Beitrag zu schreiben ... unterrichtet mich C.C: nicht BMP-Datei richtig
mit dem Schreiben aus, um Datei ein Problem zu haben, und zwar eine BMP-Datei. Ich habe einen RGB-Wert entfernt und die restlichen Daten in eine neue Datei geschrieben. Wenn ich versuche, es zu öffnen, wird es nicht erkannt und dann kommt Frustration. Der Code schreibt die entsprechende Größe aus, ich bekomme keinerlei Fehler, es läuft ... Ich bekomme einfach nicht die Ausgabedatei, die ich brauche, und stecke fest, wie ich es umgehen kann.
Offensichtlich ich vermasseln meine Konvertierung zurück in die Datei oder fehlt etwas völlig anderes. Hilfe wird geschätzt.
FILE * fPointer;
fPointer = fopen("myBMP.bmp", "rb");
FILE * wfPointer;
wfPointer = fopen("myBMP2.bmp", "wb");
unsigned char fileChars;
unsigned char wfBMP;
unsigned int toBMPFile[1024];
unsigned int intcon;
int count = 0;
int countchars = 0;
int i = 0;
while(!feof(fPointer))
{
fileChars = fgetc(fPointer);
intcon = fileChars;
// strip 255 out of file
if(intcon == 255)
{
// printf("%i ", intcon);
continue;
}
else if(intcon < 255)
{
// write values < 255 into file
toBMPFile[i] = intcon;
printf("%c ", toBMPFile[i]);
wfBMP = toBMPFile[i];
fwrite(&wfBMP, sizeof(wfBMP), 1, wfPointer);
// fprintf(wfPointer, "%c", wfBMP);
countchars++;
}
else
{
continue;
}
count++;
}
printf("\nnumber of characters in new file: %i\n", countchars);
fclose(fPointer);
fclose(wfPointer);
return 0;
}
Es ist mir nicht klar, warum Sie annehmen, dass das blinde Ausfiltern aller Bytes mit einem bestimmten Wert zu einem Ergebnis führen sollte, das immer noch eine gültige BMP-Datei ist. –
Ich empfehle zuerst, über das [BMP-Dateiformat] (https://en.wikipedia.org/wiki/BMP_file_format) zu lesen. Unter anderem verrechnen Sie keine Kopfzeile. Können Sie erklären, was Sie mit den Werten unter 255 versuchen? Gerade jetzt, scheint das nichts Sinnvolles zu tun – user1354557
Ich versuche zu lernen, wie zu interagieren und Farbwerte mit Code ändern. Mir ist aufgefallen, dass die Datei Header hat und die Größe der Datei (und viel Leseaufwand), die ich benötige, um die Header-Werte anzupassen, etwas verwirrend ist. Ich war in der Lage, Werte zu aktualisieren (ohne die Dateigröße zu verringern) und schreibe in eine Datei, die 255 ausfüllt und ein sichtbares Bild hat. –