WebCam



  • Hallo,

    ich habe die Quellen zur WebCam hier geladen:
    http://www.allanpetersen.com/index.php/contents/Main/Programming.html

    Klappt auch bestens. Nun würde ich gerne dieses in meinem Formular integrieren, dass ein Image als Darstellung für die Live-Aufnahme der WebCam benutzt wird. Über eine Schaltfläche auf der Form speichere ich dann das aktuelle Bild ab und zeige es in dem Image der WebCam wieder an.

    Nur wie integriere ich das direkt im Formular in dieser Verbindung ?



  • Glücklicherweise ist das ganz einfach 😃
    und ich habs erst kürzlich gemacht

    also, du

    // brauchste einen TCap Zeiger
    TCap* Cap;
    
    // dann initialisierst du das ganze
    this->DoubleBuffered = true; // wird benötigt, sonst flackert das Bild
    Cap = new TCap (derHandle);
    Cap->EnumCapDrv ();
    Cap->Connect (0);
    // als Handle gibst der TCap Instanz den Handle auf ein Panel (geht nich anders)
    // das Panel hab ich persönlich auf 1x1 Pixel skaliert, wenn dus Invisible
    // machst gehts nichtmehr
    
    // das Bild kriegste dann so in dein TImage Objekt
    
    TClipboard* pCB = Clipboard();
    Cap->SaveToClipboard();
    if(pCB->HasFormat(CF_BITMAP))
    {
       dasBild->LoadFromClipboardFormat(CF_BITMAP,pCB->GetAsHandle(CF_BITMAP),0);
    }
    
    // dasBild = TImage Objekt
    

    Aber: eigentlich ist der Code auch nur aus den Beispielen rauskopiert,
    also aus dem Quellcode.



  • Hallo,

    klasse, danke. Ich hatte kein Panel und zuerst auch nicht ->Handle angegeben.

    Nur: Cap->SaveToClipboard(); ist kein Element von TCap und
    LoadFromClipboardFormat ist kein Element von TImage ..?



  • Und noch ne Nachfrage - das Panel behält nicht meine eingestellte Größe. Kann ich das noch ändern ?



  • Ok, Image->Picture->Load...

    Nur Cap->SaveToClipboard(); steht noch aus.



  • Also, die Größe kannst du zur Programmlaufzeit noch ändern.

    Die Methode die tatsächlich in der aktuellsten c_cap version
    nichtmehr drin ist für die Zwischenablage:

    void TCap::SaveToClipboard ()
    {
            capEditCopy(hwndVideo);
    }
    

    Achja, die LoadFromClipboardFormat Methode, sry,
    ist eine Methode von TPicture.



  • COOL

    Nun geht alles 🙂 Schönen Dank !!!


Anmelden zum Antworten