C-Sharp - Externes Programm in Panel anzeigen und Image davon erstellen
Hallo,
für die Darstellung von Kamerabildern einer Videoüberwachungsanlage wird ein Programm, das vom Hersteller der Anlage zur Verfügung gestellt wird, verwendet. Dieses bietet keinerlei Schnittstellen um die angezeigten Bilder zu exportieren.
Die einzige Möglichkeit, die meiner Meinung nach übrig bleibt, ist, die dargestellten Bilder mittels "Screenshot" aufzunehmen, um sie so weiterverarbeiten zu können.
Dafür will ich eine Form erstellen, in welcher das externe Programm in einem Panel dargestellt wird. Von der Form will ich anschließend mit der Methode "DrawToBitmap" ein Bild von den dargestellten Bildern machen.
Das Anzeigen des externen Programms funktioniert soweit. Wenn ich allerdings von der Form oder von dem Panel ein Image erstelle (mit .DrawToBitmap), dann ist das externe Programm nicht auf dem Image enthalten.
Weiss jemand wie ich ein Image von der Form/Panel erstellen kann, auf dem das externe Programm auch dargestellt wird?
Danke
Gruss
mabue
für die Darstellung von Kamerabildern einer Videoüberwachungsanlage wird ein Programm, das vom Hersteller der Anlage zur Verfügung gestellt wird, verwendet. Dieses bietet keinerlei Schnittstellen um die angezeigten Bilder zu exportieren.
Die einzige Möglichkeit, die meiner Meinung nach übrig bleibt, ist, die dargestellten Bilder mittels "Screenshot" aufzunehmen, um sie so weiterverarbeiten zu können.
Dafür will ich eine Form erstellen, in welcher das externe Programm in einem Panel dargestellt wird. Von der Form will ich anschließend mit der Methode "DrawToBitmap" ein Bild von den dargestellten Bildern machen.
Das Anzeigen des externen Programms funktioniert soweit. Wenn ich allerdings von der Form oder von dem Panel ein Image erstelle (mit .DrawToBitmap), dann ist das externe Programm nicht auf dem Image enthalten.
Weiss jemand wie ich ein Image von der Form/Panel erstellen kann, auf dem das externe Programm auch dargestellt wird?
Danke
Gruss
mabue
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 258597
Url: https://administrator.de/contentid/258597
Ausgedruckt am: 25.11.2024 um 08:11 Uhr
4 Kommentare
Neuester Kommentar
Moin,
das Video wird sicherlich über DirectX gerendert und ist so dann nicht über das herkömmliche GDI zu capturen, auch weil der Content zu einem anderen Thread gehört.
http://www.codeproject.com/Articles/274461/Very-fast-screen-capture-usi ...
Gruß jodel32
das Video wird sicherlich über DirectX gerendert und ist so dann nicht über das herkömmliche GDI zu capturen, auch weil der Content zu einem anderen Thread gehört.
http://www.codeproject.com/Articles/274461/Very-fast-screen-capture-usi ...
Gruß jodel32
Aber das Panel ist komplett leer.
weil der Inhalt zu einem anderen Thread gehört, und mit deiner Methode dies so nicht geht.Mach den Screenshot mal mit der Funktion CopyFromScreen:
http://msdn.microsoft.com/de-de/library/system.drawing.graphics.copyfro ...
Wenn damit der Inhalt immer noch nicht mit aufgenommen wird musst du es über DirectX machen.
hallo, Kannst Du OpenCV probieren :
http://www.codeproject.com/Articles/722569/Video-Capture-using-OpenCV-w ...
Dies ist ein Beispiel um eine AVI-Datei zu lesen, aber können Sie den Zeiger ändern und es zu erfassen Bildschirm oder eine Kamera,
vielleicht können Sie aus dem Programm externen Capturen .
http://www.codeproject.com/Articles/722569/Video-Capture-using-OpenCV-w ...
Dies ist ein Beispiel um eine AVI-Datei zu lesen, aber können Sie den Zeiger ändern und es zu erfassen Bildschirm oder eine Kamera,
vielleicht können Sie aus dem Programm externen Capturen .