Long > rgb et rgb > long (sans utiliser la fonction rgb)

Contenu du snippet

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.

A voir également

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.