Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Speichern von Bitmaps

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
07.06.2006, 13:50 Uhr
OnkelHotte



Hallo,
ich hab folgendes Problem:

Ich will ein Bitmap, dass ich unter VS6 im Resourceneditor eingebunden habe, als .bmp Datei speichern.

Zur Zeit benutze ich folgenden Code:


Code:

hBmp=FindResource(hMain,245,RT_BITMAP)  // 245 ist Resourcennr. von IDB_BITMAP1
hSize=SizeofResource(NULL,hBmp)
hRes=LoadResource(NULL,hBmp)
hLock=LockResource(hRes)
hFile=CreateFile(filename,GENERIC_WRITE,null,null,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,null)
bool=WriteFile(hFile,hLock,hSize,null,null)
bool=SetEndOfFile(hFile)
bool=CloseHandle(hFile)



Die Daten werden auch in eine Datei geschrieben, im Texteditor sehen sie auch identisch aus, nur in der neuen Datei scheint der Header zu fehlen, die die Datei als .bmp nutzbar macht.

Oder kennt jemand eine andere Möglichkeit, wie ich eine Resource wegspeichern kann?


Danke im Vorraus!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.06.2006, 22:34 Uhr
~gast
Gast


Hi!

Ich glaube was fehlt ist der BITMAPFILEHEADER (14 Byte)

C++:
struct BITMAPFILEHEADER {
        WORD    bfType;     // Signatur 0x4d42
        DWORD   bfSize;     // Gesamtgröße der Datei in Bytes
        WORD    bfReserved1;// immer 0
        WORD    bfReserved2;// immer 0
        DWORD   bfOffBits;  // Offset der Pixeldaten innerhalb der
                            // Datei - dein Problem! denn in der
                            // Datei steht noch der
                            // BITMAPINFOHEADER oder
}                           // BITMAPV4HEADER oder der
                            // BITMAPV5HEADER


Diese Struktur muss ausgefüllt zuerst in die Datei geschrieben werden.
Du brauchst den Offset der Pixeldaten! und die Dateigrösse

mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.06.2006, 10:48 Uhr
~gast
Gast


Danke für den Tip,
hab das Problem mittlerweile anders gelöst. Hab es als Custom importiert, denn wenn man ein Bitmap importiert, gehen die Headerinformationen des Bitmaps verloren.

Importiert man ein Bitmap als Custom, dann geht der Header nicht verloren und man kann es einfach extrahieren.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: