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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 753 fois - Téléchargée 38 fois

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

Ajouter un commentaire Commentaires
10 ans après : Génial ! Mille mercis !!!
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
6 avril 2003 à 22:34
pas mal !
10/10

faut dire que j'ai besoin à max de sources concernant le graphisme et que ce code tombe à pic ! j'avais posé la question ds le forum 1 fois mais pas de réponse. Impec

a +
cs_Nil Messages postés 85 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 31 décembre 2002
6 avril 2003 à 18:48
Les commentaires sont mis en dessous du code, dans les remarques et notes.

DARKSIDIOUS : Désolé je n'avais pas vu t'as source, en faite je cherchais ce code, et à défaut de le trouver, je l'ai créer.

Il y a une autre source ou il montre comment passer du Long au RGB, malheureusement ca fonctionne pas terrible...
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
6 avril 2003 à 17:46
Ah, j'avais déjà fait çà dans une de mes sources, et c'est une dll qui gère également les HLS (luminosité, saturation et teinte, et permet de tracer des dégradés... mais c'est pas mal comme source, c'est toujours utile. par contre, tu pourrais un peu plus la commenter...

8/10

DARK SIDIOUS
spomky Messages postés 34 Date d'inscription mercredi 15 février 2012 Statut Membre Dernière intervention 18 mars 2012
6 avril 2003 à 17:10
super util ce petit bout de code, en particulier dans mon projet actuel! merci bien et allé hop... un bon 10

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.