wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 3

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Développement C/C++
» wxScreenCapture
Conversation (Résolue) : wxScreenCapture
06-07-2009 16:04:10  wxScreenCapture #1
Speedy37 (Nouveau membre)
Inscrit le : 12-03-2009
Messages: 3
Snippets: 0
Tutoriels: 0
Hors ligne
Bonjour,

Je souhaite réaliser un logiciel de capture d'écran.

J'arrive à capturer l'écran, mais je n'ai pas le curseur sur la capture

Voici le script que j'utilise

Code wxWidgets:

wxSize screenSize = wxGetDisplaySize(); 
        wxBitmap bitmap(screenSize.x, screenSize.y);
        wxScreenDC dc;
        wxMemoryDC memDC;
        memDC.SelectObject(bitmap);
        memDC.Blit(0, 0, screenSize.x, screenSize.y, &dc, 0, 0);
        bitmap.SaveFile("test.bmp", wxBITMAP_TYPE_BMP);


Sinon, pourquoi je code un tel programme, et bien c'est parce que j'ai un écran d'un résolution de 1920*1200 et je souhaite pouvoir enregistrer dans les 30 images par secondes.

Pour l'instant, cela fonctionne bien, j'atteins environ 28fps avec 2 threads

Dernière modification par Speedy37 (06-07-2009 18:33:22)

07-07-2009 16:16:34  Re: wxScreenCapture #2
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1383
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Salut.

C'est tout à fait normal que tu ne captures pas le curseur. Il ne fait pas partie d'une fenêtre.

Tu peux par contre en récupérer la position au moment où tu fais ta capture, et le re-dessinner à la bonne position avant de sauver le fichier (mais ça risque de faire diminuer ton fps).

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
08-07-2009 09:42:31  Re: wxScreenCapture #3
Speedy37 (Nouveau membre)
Inscrit le : 12-03-2009
Messages: 3
Snippets: 0
Tutoriels: 0
Hors ligne
Si c'est l'unique solution, je mettrais une option pour cet ajout qui ce fera par le thread d'encodage
08-07-2009 10:45:19  Re: wxScreenCapture #4
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1383
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Tu peux enregistrer, conjointement aux images, les positions et états des boutons de la souris correspondants à chaque image, et ainsi, dessinner un curseur personnalisé, avec un petit effet permettant de voir chaque clic.

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
08-07-2009 12:13:40  Re: wxScreenCapture #5
Speedy37 (Nouveau membre)
Inscrit le : 12-03-2009
Messages: 3
Snippets: 0
Tutoriels: 0
Hors ligne
En gros : plusieurs threads capturent les images, les ajoutent à une classe d'encodage, qui va ensuite ajouter les images dans le fichier.
Le seul problème est que si le thread qui encode ne suit pas, la mémoire utilisé par le programme va augmenter. Mais l'avantage, c'est que le nombre de Fps obtenu est 1,8 fois celui obtenu avec CamStudio.

En fonction des résultats, l'ajout des curseurs sera soit fait pas le processus d'encodage, soit par un processus indépendant, soit par les processus de capture.

En tout cas, je suis bien content de pouvoir capturer 27fps sur mon 26" en 1920x1200 contrairement aux 15fps de CamStudio
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Développement C/C++
» wxScreenCapture