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 danach

    capPreviewRate(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()


Anmelden zum Antworten