BITMAP- Bild
-
Hallo,
ich habe mir in Programm geschrieben, dass mir die RGB- Werte eines BMP-Bildes (24- Bit)als Hex-Dump in eine Textdatei schreibt. In der Textdatei ersetze ich bestimmte weiße Pixel durch schwarze (aus FF FF FF wird 00 00 00). Jetzt will ich den Hex- Dump wieder in ein C- Programm einlesen und dann das Bild wieder ausgeben.
Wie mache ich das nun, so dass wieder ein Bild rauskommt? Muss ich auch wieder den ganzen Vorspann des Bildes (Bitmapinfoheader usw.) anhängen ?
-
schau dir mal http://www.wotsit.org/ an dort findes du alles ueber bildformate!
-
über das Bildformat weiß ich ja schon alles. Bei hapert es noch an der Umsetzung in C. Sprich wie bekomme ich jetzt aus den Bilddaten wieder ein Bild zusammen...
-
also ein vorschlag waere dass du die datei binaer oeffnest ("wb", "rb")? dann kannst binaer schreiben!
-
Ohne Header kann man die Bildinformationen nicht wirklich verarbeiten.
Also dürfen die nicht fehlen, die müssen mit in die Datei.
Genauso wie Du sie ausgelesen hast.
-
also meine idee mal soweit. das ganze einlesen und so, das hat alles geklappt, sprich ich bekomme einen Hex-Dump des Bildes. den habe ich manipuliert, alles kein problem....jetzt will ich aus den daten wieder ein bild machen. dazu lese ich mir die manipulierten daten wieder in meine bitmapstruktur:
typedef struct tagBITMAP /* the structure for a bitmap. */
{
word width;
word height;
byte *data;
} BITMAP;brauche ich zu ausgabe wirklich auch noch den rest vom bmp- header??? und wenn ich diese struktur nun binär aus gebe in ein bmp file müsste doch ein foto rauskommen, oder ???
-
Hässlicher Code – funktioniert aber ;):
http://turing.fh-landshut.de/~jamann/AlphaBlender.c
(speichert BMP Dateien unter Windows + Linux)
Ein Programm wie Paint benötigt den Datei Header um herauszufinden wie Größ das Bild ist bzw. in welchen Format es Vorliegt 8 Bit, 16 Bit, 24 Bit - RLE usw.