Krankfried
Grünschnabel
Hallo!
Mein Programm nimmt ein Videosignal auf. Das funktioniert auch super.
Nun möchte ich zusätzlich ein Live-Bild auf das MFC-Fenster bringen. Quasi immer das aktuelle Bild, das gerade von extern empfangen wurde.
Bisher zeichne ich meine Bitmaps folgendermaßen:
Das ganze ist in der OnPaint()-Funktion.
Im Code mache ich dann dies:
Das funktioniert auch ganz gut, sogar relativ flimmerfrei. Jedoch bremst die RedrawWindow-Funktion meinen ganzen Code aus, wodurch auch die Aufnahme mit ca. 10fps weniger läuft, als ohne diesen RedrawWindow-Aufruf...
Habe gehört, man kann auch DirectDraw oder so zum Zeichnen benutzen.
Suche jetzt seit gestern Nachmittag stundenlang bei Google nach einer Lösung, konnte aber nichts Brauchbares finden.
Ich hoffe, ihr könnt mir mit einem Codeschnipsel helfen. Noch besser wäre ein kleines Beispielprojekt, denn aus sowas lernt man ja besonders gut, finde ich.
Mein Programm nimmt ein Videosignal auf. Das funktioniert auch super.
Nun möchte ich zusätzlich ein Live-Bild auf das MFC-Fenster bringen. Quasi immer das aktuelle Bild, das gerade von extern empfangen wurde.
Bisher zeichne ich meine Bitmaps folgendermaßen:
Code:
CPaintDC dc(this);
HDC bitmap_dc = CreateCompatibleDC(dc);
HBITMAP old_bitmap=(HBITMAP)SelectObject(bitmap_dc, hBitmap);
BitBlt(dc, 18, 24, 256+18, 386+24, bitmap_dc, 0,0, SRCCOPY);
SelectObject(bitmap_dc, old_bitmap);
DeleteObject(bitmap_dc);
Im Code mache ich dann dies:
Code:
(...)
hBitmap = CreateBitmapFromPixel(hdcDIB, 256, 384, 24, buffer);
(...)
RedrawWindow(NULL,NULL,RDW_INVALIDATE|RDW_UPDATENOW);
Das funktioniert auch ganz gut, sogar relativ flimmerfrei. Jedoch bremst die RedrawWindow-Funktion meinen ganzen Code aus, wodurch auch die Aufnahme mit ca. 10fps weniger läuft, als ohne diesen RedrawWindow-Aufruf...
Habe gehört, man kann auch DirectDraw oder so zum Zeichnen benutzen.
Suche jetzt seit gestern Nachmittag stundenlang bei Google nach einer Lösung, konnte aber nichts Brauchbares finden.
Ich hoffe, ihr könnt mir mit einem Codeschnipsel helfen. Noch besser wäre ein kleines Beispielprojekt, denn aus sowas lernt man ja besonders gut, finde ich.
Zuletzt bearbeitet: