Voici, bien humblement, la façon la plus rapide de décomposer une couleur 24-bits en ses composantes colorimétriques (8-bits) sous VB6. Elle allie en réalité les deux façons les plus courantes d'appréhender le problème.
J'ai juste modifié le calcul de la composante colorimétrique bleue qui, habituellement, nous est présenté sous cette forme :
B= (C& And &HFF0000) \ &H10000
et l'ai simplifié sous celle-ci :
B = C& \ &H10000
Pour la compréhension, référez-vous aux trop nombreuses sources déjà présentes à ce sujet sur Codes-Sources et VBFrance.
Tout ce que je peux vous rappeler c'est que :
- "\" est un division ne renvoyant que la sa partie entière (autrement dit, tronquant la partie décimale, le reste de la division... l'inverse du modulo quoi !)
- &Hxxx& sont des nombres sous forme hexadécimale (base 16) dont voici ceux utilisé présentement :
Hexa Dec Bin R G B --
FF = 255 = 0000'0000 | 0000'0000 | 1111'1111.--
100 = 256 = 0000'0000 | 0000'0001 | 0000'0000.--
FF00 = 65'280 = 0000'0000 | 1111'1111 | 0000'0000.--
10000 = 65'536 = 0000'0001 | 0000'0000 | 0000'0000.--
FF0000 = 16'711'680 = 1111'1111 | 0000'0000 | 0000'0000.--
- Que la fonction logique AND (ET en français) est :
0 and 0 = 0
0 and 1 = 0
1 and 0 = 0
1 and 1 = 1