De GetPixel à GetDiBits

cs_foyfinou Messages postés 9 Date d'inscription jeudi 12 avril 2007 Statut Membre Dernière intervention 20 juillet 2008 - 17 juil. 2008 à 16:47
8sango8 Messages postés 7 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 2 février 2010 - 2 févr. 2010 à 15:44
Bonjour,

J'ai une fonction qui cherche des Pixelx d'une certaine couleur dans l'ecran courrant en utilisant GetPixel. Neanmoins, elle est trop lente et j'aimerai utiliser GetDiBits. Malgrés les exemples que j'ai consulté, je n'ai pas réussit à l'utiliser.
Si quelqu'un pouvait m'aider à utiliser GetDiBits avec le code ci dessous :

En gros le code :

HDC hdc = GetDC(NULL);
while(PixelX<1024)
{

PixelY=0;
while(PixelY<768)

{
    //Recupere la couleur du Pixel
    COLORREF color= GetPixel(hdc, PixelX, PixelY);
    long redValue = GetRValue(color);
    long greenValue = GetGValue(color);
    long blueValue = GetBValue(color);
    //Si rouge
    if (redValue==255&&greenValue==0&&blueValue==0)
    {
       printf("Pixel rouge :  X=%i  Y=%i",PixelX,PixelY);
    }
    //test 1 pixel sur 3
    PixelY=PixelY+3;
}
PixelX=PixelX+3;
}

Merci.

5 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
18 juil. 2008 à 20:29
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
18 juil. 2008 à 23:01
J'ai déjà essayé d'utiliser GetDIBits pour extraire les couleurs de l'affichage (GetDC(0)) mais je n'ai jamais été capable.
Peut-être parce que le HBITMAP extrait (avec GetCurrentObject) n'est pas un DIB (Device Independent Bitmap).

C++ (@++)<!--
0
cs_foyfinou Messages postés 9 Date d'inscription jeudi 12 avril 2007 Statut Membre Dernière intervention 20 juillet 2008
20 juil. 2008 à 23:03
Vecchio, j'ai deja vu cette source ainsi que vos discussions mais je n'ai as su l'utiliser avec le code ci dessus !

Sa m'etonnerai quand même que GetPixel soit la methode la plus rapide pour rechercher une couleur dans une image ?!
Si quelqu'un connait une autre methode ? ^^
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
21 juil. 2008 à 15:12
Ben:
http://www.cppfrance.com/codes/CAPTURE-ECRAN_47362.aspx

Il utilise bien GetDIBits mais c'est un peu plus complexe que mon code (étant donné que le mien ne fonctionne pas avec l'écran au complet...). Si tu veux y jeter un coup d'œil.

C++ (@++)<!--
0

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

Posez votre question
8sango8 Messages postés 7 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 2 février 2010
2 févr. 2010 à 15:44
Bonjours à toi dit je serais fort interressé par ton code terminer parce que je debute en C++ et je ne vois pas trop comment tu fais pour charger l'image dans le buffer pour pouvoir la traiter.Merci si tu sais me l'envoyer sur simba_the_metiss@live.be ( il s'agit d'une vielle adress msn :p ) merci
0
Rejoignez-nous