Récupérer la valeur des pixels avec seulement le hWnd

Signaler
Messages postés
117
Date d'inscription
samedi 12 avril 2003
Statut
Membre
Dernière intervention
8 septembre 2008
-
Messages postés
117
Date d'inscription
samedi 12 avril 2003
Statut
Membre
Dernière intervention
8 septembre 2008
-
Bonjours à tous !

Je vous explique mon problème : je veux exploiter les images issues de ma WebCam. Je sais la connecter lui demander d'envoyer des images, elle me retourne un hWnd. Mais le problème c'est que pour récupérer la valeur des pixels je connais qu'une manière, c'est à dire faire une double boucle et utiliser GetPixel pour récupérer les données et SetPixel pour les afficher.

Si vous pouviez me donner une méthode plus rapide...
Merci de votre attention.

>:) Stéph >:)

3 réponses

Messages postés
15
Date d'inscription
dimanche 23 mai 2004
Statut
Membre
Dernière intervention
24 juin 2004

essaye avec GetDIB a la place de GetPixel et SetDIB a la place de SertPixel
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
115
Il faut tout d'abord récupèrer le hDC à partir du hWnd pour pouvoir accèder à ton image : regarde la fonction GetDC.

Ensuite, utilise la fonction GetDIBBits pour récupèrer les bits de ton images dans un tableau, ce qui est bien plus rapide qu'un GetPixel sur tout les pixels (de l'ordre de 10x plus rapide !)

Enfin, manipule tes pixels comme tu veux dans ton tableau de bits, puis affiche les dans un contexte en utilisant la fonction SetDIBitsToDevice.

Pour plus d'info sur ces fonctions, je te conseille de télécharger ProgOtoP API Viewer (dans sa version beta 2 qui arrive ce soir, ces fonctions seront rajouttées dans la base de données.)

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
Messages postés
117
Date d'inscription
samedi 12 avril 2003
Statut
Membre
Dernière intervention
8 septembre 2008

Merci beaucoup ! Je metterais ma source, une fois terminée, sur ce site. Je pense que d'autre programmeur se pose la même question que moi.

>:) Stéph >:)