Accueil > Forum > > > > capture d'écran à distance trés lent
capture d'écran à distance trés lent
dimanche 10 mai 2009 à 15:08:43 |
capture d'écran à distance trés lent

bazbazus
|
bonjour a tous je suis entrain de creer un logiciel " surveillance réseau " j'ai un problem de capture d'ecran j'utilise socket delphi et je fait des capture d'ecran dans le serveur et j'envoi l'image dans un MemoryStream code : Serveur : jpg:=TJPEGImage.Create; ImageBureau.Height := Screen.Height; ImageBureau.Width := Screen.Width; BitBlt(ImageBureau.Canvas.Handle, 0, 0,Screen.Width, Screen.Height, GetDC(GetDesktopWindow), 0, 0, SrcCopy); REDIMENSIONNEMENT_PAR_INTERPOLATION_BILINEAIRE(ImageBureau,WidhCapture,heightCapture); jpg.CompressionQuality:=QualiterCapture; jpg.GrayScale:=False; jpg.Assign(ImageBureau); //////// envoi ms:= TMemoryStream.Create; try jpg.SaveToStream(ms); ms.Position:= 0; Socket.SendText(IntToStr(ms.Size) + #0); Socket.SendStream(ms); except ms.Free; end; Client : try jpg:=TJPEGImage.Create; s:= Socket.ReceiveText; if not Recevieng then begin SetLength(sl, StrLen(PChar(s))+1); StrLCopy(@sl[1], PChar(s), Length(sl)-1); DataSize:= StrToInt(sl); Data:= TMemoryStream.Create; Delete(s, 1, Length(sl)); Recevieng:= true; end; try Data.Write(s[1], length(s)); if Data.Size = DataSize then begin Data.Position:= 0; jpg.LoadFromStream(data); ImageCapture.Picture.Bitmap.Assign(jpg); if not ArreterCapture then ClientCaptureDecran.Socket.SendText('envoi'); Data.Free; Recevieng:= false; StatusBar1.Panels[1].Text:='Capture D''ecran reçu'; end; except if not ArreterCapture then ClientCaptureDecran.Socket.SendText('envoi'); data.Free; end; jpg.free; end;
|
|
dimanche 10 mai 2009 à 15:16:37 |
Re : capture d'écran à distance trés lent

bazbazus
|
j'ai creer un timer pour calculer les frames par second resultat : 5 images par second
|
|
dimanche 10 mai 2009 à 18:15:43 |
Re : capture d'écran à distance trés lent

Bacterius
|
5 images par seconde c'est déjà pas mal ^^
Sinon, une petite mise en forme de ton code ? :)
Cordialement, Bacterius !
|
|
lundi 11 mai 2009 à 02:51:00 |
Re : capture d'écran à distance trés lent

bazbazus
|
vnc il affiche en temp real 50 f par second au plus mdr moi je suis connecter a mon propos ordi 127.0.0.1 et je suis a 5 image par seconde .
|
|
lundi 11 mai 2009 à 19:01:22 |
Re : capture d'écran à distance trés lent

Bacterius
|
Ben remet en forme ton code parce que PERSONNE ne prendra le temps de le lire sinon ...
Cordialement, Bacterius !
|
|
lundi 11 mai 2009 à 19:06:29 |
Re : capture d'écran à distance trés lent

bazbazus
|
code Serveur :
jpg:=TJPEGImage.Create; ImageBureau.Height := Screen.Height; ImageBureau.Width := Screen.Width; BitBlt(ImageBureau.Canvas.Handle, 0, 0,Screen.Width, Screen.Height, GetDC(GetDesktopWindow), 0, 0, SrcCopy); REDIMENSIONNEMENT_PAR_INTERPOLATION_BILINEAIRE(ImageBureau,WidhCapture,heightCapture); jpg.CompressionQuality:=QualiterCapture; jpg.GrayScale:=false; jpg.Assign(ImageBureau);
//////// envoi ms:= TMemoryStream.Create; try jpg.SaveToStream(ms); ms.Position:= 0; Socket.SendText(IntToStr(ms.Size) + #0); Socket.SendStream(ms); except ms.Free; end; //////// fin denvoi jpg.free;
code client :
jpg:=TJPEGImage.Create; s:= Socket.ReceiveText; if not Recevieng then begin SetLength(sl, StrLen(PChar(s))+1); StrLCopy(@sl[1], PChar(s), Length(sl)-1); DataSize:= StrToInt(sl); Data:= TMemoryStream.Create; Delete(s, 1, Length(sl)); Recevieng:= true; end; try Data.Write(s[1], length(s)); if Data.Size = DataSize then begin fps:=fps+1; Data.Position:= 0; jpg.LoadFromStream(data); Data.SaveToFile('c:\also.jpg'); ImageCapture.Picture.Bitmap.Assign(jpg); if not ArreterCapture then ClientCaptureDecran.Socket.SendText('envoi'); Data.Free; Recevieng:= false; StatusBar1.Panels[1].Text:='Capture D''ecran reçu'; end; except if not ArreterCapture then ClientCaptureDecran.Socket.SendText('envoi'); data.Free; end; jpg.free; except end;
|
|
lundi 11 mai 2009 à 19:43:56 |
Re : capture d'écran à distance trés lent

fbalien
|
Bonjour
pour réduire la taille de l'envoie des data 1 capture de l'écran envoie au client ( là pas de grand changement ) on garde l'image pour comparaison 2 capture de l'écran comparaison avec l'image sauvegardée et envoie des différences seulement ( marche bien si pas de gros changement par contre si ouverture d'une page en plein ecran :-( )
pour avoir déjà été confronté au pb voir mon code de prise de main a distance http://www.delphifr.com/codes/FBPDM-LOGICIEL-PRISE-MAIN-DISTANCE_40948.aspx en fonction de la carte graphique on peut avoir un temps > 2 s entre deux captures
A+
|
|
mardi 12 mai 2009 à 20:46:09 |
Re : capture d'écran à distance trés lent

bazbazus
|
salut fbalien j'ai trouver la solution aujourduit mais impeut bazare alors j'ai essai de creer plesieur client ( 4 client dans l'pplication d'origine ) et ( 4 application de capture serveur ) sa marche a 20 fps . il ya un problem quon je fait la capture sur le serveur application me prend 50% de mon processeur est j'ai core de duo 3 ghz alors je dit pas quon je lancer 4 serveur .
|
|
mardi 12 mai 2009 à 20:47:49 |
Re : capture d'écran à distance trés lent

bazbazus
|
ya pas une autre solution de capture qui prend pas beaucoup le travail de processus
|
|
jeudi 23 juillet 2009 à 16:21:22 |
Re : capture d'écran à distance trés lent

darkcodersc
|
Je pensse que c'est la conversion qui prend le plus de temps , essay tu vai voir que lorsque tu converti ton image en jpg il se passe presque 1/2 seconde ( sa depend du pc )
o lieu de faire un screen cap et envoi en boucle essay plutot de detecter les position qui change et de modifier que la parti changer sa irra plus vite la conversion ossi
et utilise les gif c bcp moin lourd ! mias qualité moyene .
Greetz DarkCoderSc
|
|
Cette discussion est classée dans : ms, data, socket, capture, jpg
Répondre à ce message
Sujets en rapport avec ce message
Capture d'écran par socket [ par txo ]
Bjr,Je voudrais savoir comment je pourrai envoyer une capture d'ecran par un TSocket (ou autre si ce n'est pas possible).Après avoir cherché un peu je
Socket data et connection[] [ par mickeydisn ]
Voila Deux petit question.. tout d'abor quand pour utiliser le pointer socket.datapour un entier socket.data := pointer(i);
Problem TMemoryStream ( envoi fichier par socket ) [ par bazbazus ]
salut a tous je suis entrain de creer un explorateur online . quon j'essai de telecharger un fichier de petit taille (300) mo normal pas de problem ma
Capture d'écran à distance Problem image 50 ko [ par bazbazus ]
bonjour a tous je suis entrain de creer un logiciel " surveillance réseau " j'ai un problem de capture d'ecran l'image a envoyer est trop grand sur ta
Résoudre le problème des socket [ par bazbazus ]
bonjour a tous language : delphi 7 problem : je utiliser les socket sur tous mes project delphi et tous mes project ont meme problem si le serveur de
Comment remplir un datagrid par socket [ par ngbemartin ]
le client lance une requête de sélection vers le serveur et souhaite reccupper le résultat dans un dataGrid. Comment faire?
sauvegarde [ par saimslim ]
salut tous le monde,comment sauvegarder mes tables(data.db,data.px,dat.xg0,data.yg0...........),dans un repertoire sous windows,et comment je peut les
ShellExecute et SW_Hide [ par torest666 ]
Bonjour,J'utilise ShellExecute pour effectuer une commande de conversion de fichier. Au moment de son exécution j'aimerais que la fenêtre MS Dos en s'
Un quickreport en metaFile [ par leroukin ]
Bonjour,Le but de ma fonction est de générer un JPEG à partir des metafiles contenus dans mon objet QuickReport.voici la fonction :procedure TModuleEx
Data structure et TFrame [ par solilog ]
Bjr tous,Je reviens avec une question. Plus un conseil.Je bosse sur un DB dont la table des signalétiques principaux est à multi-format (gros systèmes
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|