Comment convertir une valeur long en RGB ?Les couleurs Windows sont représentés par un entier long (8 bytes). Cet entier long permet de stocker les composantes RVB (Rouge, Vert et Bleu) de la façon suivante : &H00BBVVRR. On remarquera que les valeurs pour R, V et B sont stockés dans l'ordre B, V, R, contrairement à HTML, par exemple, où les valeurs sont stockés dans l'ordre R, V, B.
La fonction RGB(r,v,b) produit un entier long (Long) suivant la formule : lColorValue = 65536 * b + 256 * v + r Pour retrouver les valeurs r,v et b depuis un Long, il suffit de procéder à l'opération inverse : b = lColorValue \ 65536
Public Sub MyGetRVB(ByVal lColorValue As Long, _ Informations complémentairesDans l'entier long représentant la couleur, l'octet de poids le plus fort vaut "0x00" pour les couleurs utilisateurs. La valeur "0x80" est réservée pour indiquer une couleur système; dans ce cas, l'octet de poids le plus faible indique l'élément Windows concerné.Visual Basic possède une énumération de constantes (system colors) qui permet de retrouver la plupart de ces couleurs système. Néanmoins, l'arrivée de Windows XP et ensuite de Windows Vista a aussi été l'occasion d'introduire de nouveaux code couleurs système. Ceux-ci ne sont pas disponibles directement, et devront être obtenus à partir de la fonction getSysColor, qui renverra elle une couleur utilisateur. Liens utiles |
Date de publication : 25 février 2007 Dernière modification : 25 février 2007 Rubriques : Affichage & graphismes Mots-clés : RGB, couleurs, conversion, rouge, vert, bleu |