Voici comment transformer 3 nombre déclaré en Byte (0 à 255) en nombre long formant une couleur RGB et aussi comment transformer un nombre Long en 3 nombres Byte formants chacuns une quantitée de rouge, vert et bleu.
Source / Exemple :
Type ColorValue
bRed As Byte
bGreen As Byte
bBlue As Byte
lNumber As Long
End Type
Function LongToRGB(LongCol As Long) As ColorValue
With LongToRGB
.bBlue = CByte(Int(LongCol / 65536))
.bGreen = CByte(Int((LongCol - CLng(.bBlue) * 65536) / 256))
.bRed = CByte(LongCol - CLng(.bBlue) * 65536 - CLng(.bGreen) * 256)
.lNumber = LongCol
End With
End Function
Function RGBToLong(bRed As Byte, bGreen As Byte, bBlue As Byte) As Long
RGBToLong = CLng(bBlue) * 65536 + CLng(bGreen) * 256 + CLng(bRed)
End Function
Conclusion :
Le bleu est la quantitée possible de 65536 dans LongCol.
Le vert est la quantitée possible de 256 dans ce qui reste de LongCol - Bleu.
Le rouge est ce qui reste.
Voila, ces phrases me paraissent claires :D
Remarque : pas de commentaires inutiles, insultants, etc, etc, ... merci de ne pas poser de questions n'ayant aucun rapport avec la source.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.