Bild von der Webcam ist nur grün - capGrabFrame
-
Hi,
ich verwende folgenden Code:
hwndC=capCreateCaptureWindow("cam", WS_VISIBLE|WS_CHILD, 0,0,320,240,hwnd, 1);
capDriverConnect(hwndC, 0);
capGrabFrame(hwndC);
capEditCopy(hwndC);Wenn ich das Bild dann aus der Zwischenablage paste, erscheint nur ein grünes 24-bit bmp mit 352x288 pixel
Kann mir jemand erklären was hier falsch läuft ?
Die Kamera funktioniert einwandfrei, wenn ich danachcapPreviewRate(hwndC, 30);
capPreview(hwndC, TRUE);
angebe kommt das live-Bild im Fenster.
-
gelöst:
zw.
capDriverConnect(hwndC, 0);
und
capGrabFrame(hwndC);
muß eine Pause sein !
-
Hmm, hört sich komisch an. Ne Pause hört sich irgendwie nach Frickel an

Platform SDK schrieb:
The capGrabFrame macro retrieves and displays a single frame from the capture driver. After capture, overlay and preview are disabled.
Evtl. ist kurz nach dem connecten capture, overlay oder preview an ?
Im Preview-Modus kann man übrigens auch direkt das Bild aus dem DC via BitBlt() etc. kopieren...
-
ja, aber es ist so, nach dem Befehl capDriverConnect() und einem darauffolgenden capGrabFrame() oder capPreview() ist das Bild nicht sofort da, sondern es dauert 1/2-1 Sekunde. Jetzt mache ich einmal zum Programmstart das capDriverConnect() - ist zwar nicht so schön weil keine anderen Prozesse auf die Cam zugreifen können aber es geht nicht anders.
Danke für Den Tipp mit BitBlt()