Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

LONG > RGB ET RGB > LONG (SANS UTILISER LA FONCTION RGB)


Information sur la source

Catégorie :Trucs & Astuces Niveau : Débutant Date de création : 06/04/2003 Date de mise à jour : 06/04/2003 11:49:09 Vu : 1 865

Note :
9,4 / 10 - par 5 personnes
9,40 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

Description

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

  • 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
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.
 

Commentaires et avis

signaler à un administrateur
Commentaire de spomky le 06/04/2003 17:10:27

super util ce petit bout de code, en particulier dans mon projet actuel! merci bien et allé hop... un bon 10

signaler à un administrateur
Commentaire de DARKSIDIOUS le 06/04/2003 17:46:36 administrateur CS

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

signaler à un administrateur
Commentaire de Nil le 06/04/2003 18:48:11

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...

signaler à un administrateur
Commentaire de Anthomicro le 06/04/2003 22:34:39

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 +

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.