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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 432 fois - Téléchargée 36 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
8 -
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
-
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
15838
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
82 -
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
-
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.