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
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|