Convertir en entier les valeur de GetPixel [Résolu]

Signaler
Messages postés
11
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
23 septembre 2008
-
Messages postés
285
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
20 janvier 2013
-
Bonjour j'ai déjà trouvé la solution ici mais je n'arrive plus à mettre la main dessus.
Comment fait-on pour convertir sous la forme par exemple : r=255, b=152, g=12 une valeur récupérer avec Getpixel()

4 réponses

Messages postés
11
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
23 septembre 2008

C'est bon j'ai trouvé sprintf le fait très bien : sprintf(nbHexa,"%06x", Color);

Je laisse la réponse au cas où quelqu'un aurait le même problème.
Toute façon je ne sais pas comment supprimer le topic
Messages postés
285
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
20 janvier 2013

Un COLORREF donc ...

Dans MSDN il est expliquer qu'un COLORREF c'est 0x00BBGGRR.

Donc

- int R = Color & 0x000000FF;

- int G = (Color & 0x0000FF00) >> 8;

- int B = (Color & 0x00FF0000) >> 16;


On peux aussi utiliser l'arythméeacute;tique des pointeurs :

char* c = (char*)&Color;

maintenant Rouge c[3], Vert c[2], Bleu = c[1] et éventuellement la couche alpha si elle est géré, Alpla = c[0];



Le travail c'est la santé, ne rien faire c'est la préserver !!!
Messages postés
285
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
20 janvier 2013

Tu aurais pas plus d'infos sur ta fonction ? Qu'est-ce qu'elle te retourne exactement ? Parce que des fonction GetPixel() il en existe une infinité avec toutes les librairies graphiques/systèmes d'exploitation/.....

Le travail c'est la santé, ne rien faire c'est la préserver !!!
Messages postés
11
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
23 septembre 2008

Non excuse-moi je vais faire autrement en fait.

ma fonction est la suivante :

HDC hDesk = GetDC(0);     //On récupère le handle de la fenêtre
COLORREF Color = GetPixel(hDesk, pos.x, pos.y);

Je voudrais récupérer la valeur hexadécimal de Color et la stocker dans une variable hexadécimal.

Ça paraît tout con mais je ne sais pas comment faire.