Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Schneller Screenshoot (https://www.delphipraxis.net/148653-schneller-screenshoot.html)

IIIMADDINIII 5. Mär 2010 22:03


Schneller Screenshoot
 
hi,

ich wollte einen bildschirmüberwachungsprogramm schreiben, habe aber gemerkt dass esbzimlich lange dauert bis 1 einziges bild an gezeigt wird. Es liegt daran dass der screenshoot zu groß ist. deshalb habe ich mir gedacht, dass ich nur das aufzeichnet und übertragen wird was geändert wird. nur habe ich keine idee wie ich das realiesieren kann. kann mir da jemand helfen?

gruß
MADDIN

Medium 5. Mär 2010 22:07

Re: Schneller Screenshoot
 
Pure Information, oder wolltest du auch etwas dazu fragen? Ah ;)

Es kommt zunächst wohl mal darauf an wo dein Flaschenhals ist: Das eigentliche Erstellen des Screenshots, oder das Speichern bzw. Senden, und wenn Senden, über was für Wege. So pauschal kann man dazu nicht viel sagen.

Namenloser 5. Mär 2010 23:26

Re: Schneller Screenshoot
 
Ich habe auch mal mit sowas experimentiert, wirklich "schnell" im Sinne von Echtzeit war es aber nie. Ich glaube, es hat schon seinen Sinn, dass es spezielle Protokolle wie VNC dafür gibt, die von den meisten solcher Programme genutzt werden. Denn alles, was rein über Screenshots läuft, ist entweder sehr langsam oder sehr rechenintensiv oder beides. Wenn es wirklich schnell sein soll, implementier ein solches Protokoll (oder nimm eine fertige Lösung).

Dennoch: Eine recht einfache Möglichkeit, um nur die Veränderungen zu übertragen (bzw. den Rest stark zu komprimieren), wäre, das jeweils aktuelle Bild mit dem vorigen Bild per XOR zu verknüpfen. Dadurch wird alles, was sich nicht verändert hat dann Schwarz, was bei entsprechender Komprimierung (z.B. mit PNG) zu relativ kleinen Dateien führt. Auf der anderen Seite verknüpfst du das entstandene Bild wieder per XOR mit dem vorhergegangenen, und erhältst so wieder das Original. Alternativ könntest du die Bilder natürlich auch manuell durchscannen und alle nicht veränderten Pixel durch eine bestimmte, transparente Farbe ersetzen - da ist es ganz praktisch, dass PNG einen Alphakanal hat.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz