Couleur d'un pixel api win

Derto Messages postés 11 Date d'inscription dimanche 7 décembre 2008 Statut Membre Dernière intervention 14 janvier 2009 - 12 janv. 2009 à 22:47
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 25 avril 2009 à 10:30
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

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
12 janv. 2009 à 23:04
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
0
Derto Messages postés 11 Date d'inscription dimanche 7 décembre 2008 Statut Membre Dernière intervention 14 janvier 2009
12 janv. 2009 à 23:20
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 :<
0
Azer33 Messages postés 6 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 25 mai 2009
13 janv. 2009 à 06:49
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...)
0
Derto Messages postés 11 Date d'inscription dimanche 7 décembre 2008 Statut Membre Dernière intervention 14 janvier 2009
13 janv. 2009 à 13:07
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 .
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
25 avril 2009 à 10:30
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.
0
Rejoignez-nous