[C++] Récupérer la valeur de l'écran
KX
Messages postés
19031
Statut
Modérateur
-
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je voudrais faire un programme en C++ sous Windows qui me permette de faire comme une impression écran, c'est à dire récupérer un tableau de pixel, pour que je puisse le traiter après...
Problème : je n'ai aucune idée de comment récupérer ce tableau de pixel !
PS. Ce que je voudrais au final c'est faire des clichés successifs et optimiser la taille de la "vidéo", non pas pour l'utilité du programme, mais par simple défi algorithmique...
Tout aide est la bienvenue. Merci !
--
La confiance n'exclut pas le contrôle
Je voudrais faire un programme en C++ sous Windows qui me permette de faire comme une impression écran, c'est à dire récupérer un tableau de pixel, pour que je puisse le traiter après...
Problème : je n'ai aucune idée de comment récupérer ce tableau de pixel !
PS. Ce que je voudrais au final c'est faire des clichés successifs et optimiser la taille de la "vidéo", non pas pour l'utilité du programme, mais par simple défi algorithmique...
Tout aide est la bienvenue. Merci !
--
La confiance n'exclut pas le contrôle
Configuration: Windows XP / Mozilla Firefox 3.0 Dev-C++ 4.9 / Dev-Pascal 1.9.2 / Caml Light 0.74
4 réponses
-
Salut.
Là je pense qu'il faut rentrer dans les méandres de windows.
Je ne sais pas si on peut récupérer facilement des video, car si tu fait une impression écran, bien souvent il n'y a pas la vidéo dessus. -
J'ai bien compris. Je te disait juste que ça ne doit pas être si facile que ça. Il est possible que la vidéo passe en grande partie par la carte vidéo, et donc que ça soit plus dur à récupérer.
-
Ca se fait en 30 secondes avec l'api Win32 (qui fait tout sous Windows, c'est le but des fcts exportées)
Donc demander sur le groupe Pro fr Win32 https://groups.google.com/forum/?hl=fr#!forum/fr.comp.os.ms-windows.programmation
où le code a été donné... des centaines de fois ( en C et C++) -
Pour une fois, je pense que l'intervention du gros lourd de service cette fois ci incarné sous le pseudonyme
François2 est bien placé. Par contre, ça manque toujours autant d'intéret.
J'ai cliqué et fait une recherche "capture ecran" et j'ai trouvé ça :Pour le capturer tu fais juste un BitBlt() dans un DC compatible après avoir récupéré ses dimensions. Un truc comme ça : nX = GetSystemMetrics( SM_CXSCREEN ); nY = GetSystemMetrics( SM_CYSCREEN ); hDCScreen = GetDC(NULL); hDCMem = CreateCompatibleDC(hDCScreen); hBitmap=CreateCompatibleBitmap(hDCScreen, nX, nY); hBitmapOld = SelectObject(hDCMem, hBitmap); BitBlt( hDCMem, 0,0, nX,nY, hDCScreen, 0, 0 , SRCCOPY); SelectObject(hDCMem, hBitmapOld); DeleteObject( hBitmap ); DeleteDC( hDCMem ); ReleaseDC( NULL, hDCMem );
Du charabia pour moi. Donc maintenant si M. le gros malin Win32 pouvait nous dire un peu à quoi servent ces différentes instructions.-
> Du charabia pour moi.
Ca fait peur de lire de telles remarques.
On dirait un gosse de 15 ans
Achète "Windows pour les nuls" car, là, c'est grave...
Et comme on t'a dit, va demander sur le réseau Pro où ce code (qui n'est pas la bonne méthode en plus) est un code de débutant...- code trouver pourtant sur ton super lien de pro !
C'est bien remarque, tu descend en flèche le site promu depuis si longtemps avec tant d'amour...
Et si tu es si malin, mets donc la solution, comment tu l'a trouver et explique un peu au lieu de tout prendre de haut.
Car si tu as fait preuve de ton arrogance et de ta condescendance, tu n'as en rien fait preuve de ta connaissance et de ta compétence.
-