char array in Bitmap umwandeln
-
Hallo zusammen,
ich hoffe nun hier richtig zu sein.
Eine Anwendung liefert mir ein 640*480 unsigned char array in dem in jedem Feld genau 1 Pixel eines 8 Bpp codierten Bitmaps gespeichert ist.
Das ganze soll jetzt als 'echtes' BMP gespeichert werden, bzw im nächsten Schritt an eine Fkt übergeben werden, die mir daraus ein AVI macht.Hier mein bisheriger Ansatz:
HDC hdcscreen=GetDC(0); HDC hdc=CreateCompatibleDC(hdcscreen); ReleaseDC(0,hdcscreen); HBITMAP memBM = CreateCompatibleBitmap ( hdcscreen,640,480 ); SetBitmapBits(memBM,sizeof(cur_pic.image),&(cur_pic.image)); //cur_pic.image ist das char array SelectObject ( hdc, memBM ); AddAviFrame(avi,memBM); //hier kommt die Übergabe an die AVI-FktAllerdings bleibt memBM im Debugger immer bei 0x000000.
Kann das so überhaupt funktionieren, oder muss da noch mehr passieren?Besten Dank!
MfG,
Markus
-
Hoi,
Also das:
quelle schrieb:
Allerdings bleibt memBM im Debugger immer bei 0x000000.
versteh ich schon, da du das machst:
quelle schrieb:
[...]
ReleaseDC(0,hdcscreen);HBITMAP memBM = CreateCompatibleBitmap ( hdcscreen,640,480 );
[...]--------------------------------
Was das soll, versteh ich auch nicht so recht:HDC hdcscreen=GetDC(0); HDC hdc=CreateCompatibleDC(hdcscreen); ReleaseDC(0,hdcscreen);Denn:
MSDN zu CreateCompatibleDC schrieb:
HDC CreateCompatibleDC(
HDC hdc // handle to the device context
);Parameters
hdc
Handle to an existing device context. If this handle is NULL, the function
creates a memory device context compatible with the application's current
screen.PS: GetLastError kann auch s.t. helfen
