CopyRect-Funktion über Canvas (Problem beim kopieren eines Bereichs)



  • Hallo.
    Ich kopiere aus einem Video (Animate-Komp.) einen Bereich per CopyRect. (Statt 'Animate' kann es auch ein 'Image' sein).

    Das Problem: CopyRect kopiert von der Canvas, also das Bild auf dem Bildschrim. Wenn das Video z.B. 2000px breit ist, geht's also nicht. Die Animate-Komp in eine ScrollBox oder so geht auch nicht.

    Der folgende Code funktioniert gut - aber eben nur bei kleinen Videos:

    TCanvas *AniCanvas = new TCanvas();
    AniCanvas->Handle = GetDC(Animate1->Handle);
    
    TRect MyRect;
    MyRect = Rect(0,10,200,20);
    
    Image1->Canvas->CopyRect(MyRect, AniCanvas, MyRect);
    delete AniCanvas;
    

    Wie kann ich Bildbereiche kopieren auch wenn die Videos größer als der Bildschirm sind? Geht's auch ohne Canvas?



  • Hallo,

    Schau dir doch mal StretchDraw an.

    Ciao



  • Hallo Braunstein,

    mit StretchDraw kann ich was skalieren. Ich will aber Inhalte kopieren die teilweise nicht auf dem Bildschirm (->Canvas) sichtbar sind. Ich such einen Ersatz für CopyRect. Vielleicht über TBitmap?



  • Das geht nicht!

    Möglichkeit: Im Hintergrund ein unsichtbares TBitmap erstellen das Gross genug ist alles aufzunehmen und von dort kopieren. Die Darstellung aufn Canvas wäre dann nur zum darstellen...holen tust dir alles vom unsichtbaren TBitmap.



  • Ja genau kuckuck, so geht's jetzt 🙂


Anmelden zum Antworten