Fonction couleur

Signaler
Messages postés
158
Date d'inscription
samedi 31 janvier 2004
Statut
Membre
Dernière intervention
12 mars 2009
-
Messages postés
8
Date d'inscription
jeudi 12 août 2004
Statut
Membre
Dernière intervention
5 octobre 2004
-
Salut je cherche une fonction qui permet d'onbtenir une velaur COLORREF depuis un index et visse versa ex:

long index;
COLORREF rvb=RGB(255,100,101);

index=RGBtoINT(rvb);
et
rvb=INTtoRGB(index);

9 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
typedef DWORD COLORREF;
typedef DWORD *LPCOLORREF;

Rien a faire, c'est déja un entier normal
Messages postés
158
Date d'inscription
samedi 31 janvier 2004
Statut
Membre
Dernière intervention
12 mars 2009

il ya un proble je ne vois pas comment convertir un index en RGB si je veux la correspondance de 212 en RGB ?
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Mais un index de quoi ?
D'une table, laquelle ?
Tu es le seul a savoir de quoi tu parles, c'est le probleme.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
158
Date d'inscription
samedi 31 janvier 2004
Statut
Membre
Dernière intervention
12 mars 2009

t'as raison je crois que je n'ai pas été assez précis :
les couleur sont présentée sous 2 forme 1- Un index de couleur 2- une combinaisons RGB
EX: 0=RGB(0,0,0) ;

(je dit bien exemple) 124=(255,0,0);
je veux utiliser la fonction pDC->setpixel(CPoint,RGB(,,);seulement voilà que j'ai des index comme mon 124 et je veux obtenir la combinaison correspondante.

j'espère avoir été assez précis Merci d'avance.
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
124=(255,0,0); NENNI, = 255.

RGB(r,g,b) code en 0x00BBGGRR

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
8
Date d'inscription
jeudi 12 août 2004
Statut
Membre
Dernière intervention
5 octobre 2004

bah heu si j'ai compris, tu fais un truke du genre si tu as 124

124 / 65536 -> 0 est ton bleu il te reste 124
124 / 256 -> 0 est ton vert il te reste 124
124 / 1 -> 124 est ton rouge

En esperant avoir repondu a ta question bien le bonjour
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
OK mais c'est pas du vb, en C on decale les bits plutot que de faire des divisions tres lentes.
R = rgb & 0xFF;
G = (rgb >> 8) & 0xFF;
B = (rgb >> 16) & 0xFF;

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
158
Date d'inscription
samedi 31 janvier 2004
Statut
Membre
Dernière intervention
12 mars 2009

Merci ça repond exactement à ma question.
Messages postés
8
Date d'inscription
jeudi 12 août 2004
Statut
Membre
Dernière intervention
5 octobre 2004

Je donnais la "méthode" apres il utilise la solution qu'il veut, c'est sur que le decalage de bit est bcp plus rapide et interressant ds ces cas la. Mais si toutes personnes ne connait pas les décalages de bits, une grde partie connait les divisions :)