Couleur d'un pixel api win

Signaler
Messages postés
11
Date d'inscription
dimanche 7 décembre 2008
Statut
Membre
Dernière intervention
14 janvier 2009
-
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
-
Bonjour ^^

J'aimerai un peu d'aider pour obtenir la couleur d'un pixel.

Pour le moment j'ai fait de cette façon mais c'est beaucoup trop lent et dans une boucle ça ralenti fortement le pc ^^

while(blabla == 1)
{
hScreenDC = GetDC(0);
nColor = GetPixel(hScreenDC, 50, 50);
ReleaseDC(0, hScreenDC);

// si j'ai la couleur attendu je sort de la boucle.

}

Si quelqu'un avait une solution ou une source =)

merci d'avance

5 réponses

Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Salut,

Si déjà tu sortais le GetDC et le ReleaseDC de ta boucle ca irais plus vite.
Ensuite je ne voit pas trop le but de ton si ce n'est comparer la couleur d'un pixel dans une boucle while.
Ton programme va se figer et finir par planter dans ce genre de boucle.

Shell
Messages postés
11
Date d'inscription
dimanche 7 décembre 2008
Statut
Membre
Dernière intervention
14 janvier 2009

Bein, par exemple ca serai pour regarder quand un pixel passe au rouge.

while(blabla == 1)
{
 nColor = GetPixel(hScreenDC, 50, 50);

     if (nColor == rouge)
      {
      // n'importe quel action
      blabla = 2
      }
 }

Mais l'a n'est pas le problème, mon programme fonctionne exactement comme je le veux, a par le problème de vitesse :<
Messages postés
6
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
25 mai 2009

Il ne faut jamais utiliser GetPixel() et utiliser un W.T.

Voir sur le forum pro des apis (news://fr.comp.os.ms-windows.programmation)

ou ca a été expliqué maintes fois depuis plus de 15 ans

(codes en C essentiellement...)
Messages postés
11
Date d'inscription
dimanche 7 décembre 2008
Statut
Membre
Dernière intervention
14 janvier 2009

Je n'est pas tellement trouver de choses intéressante sur ces newsgroup et j'ai un peu de mal a comprendre le peu de choses que j'ai trouver ^^

Si quelqu'un avait un code d'exemple ou une explication pour récupérer facilement un pixel ça serai parfait .
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
15
Salut,

Le problème de GetPixel, c'est que tu fais un appel de fonction par pixel, sachant que c'est une fonction qui n'est probablement pas très légère.
Il faut plutôt essayer de récupérer tout un bloc de pixels dans une zone de la mémoire et travailler sur ce bloc.

Regarde ce source, basé sur GetDIBits.