Convertir un code couleur vers hexadécimal

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Convertir un code couleur vers hexadécimal

Message par Oliv »

Comment convertir un code couleur (24bits ou composantes séparées) vers un code couleur héxadécimal (pour une utilisation html) ?
Merci
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Comme ça, par exemple:

Code : Tout sélectionner

;ColorRef  = RGB($FF,$FF,$DF) ; Format du sélecteur de PureBasic 
;ColorRef  = RGB(255,255,223) ; Format normal 
ColorRef  = 14680063 ; Format retourné par certaines applications 

; 
Rouge    = Red(ColorRef)
Vert     = Green(ColorRef)
Bleu     = Blue(ColorRef)

ColHex$   = "#"+RSet(Hex(Rouge),2,"0")+RSet(Hex(Vert),2,"0")+RSet(Hex(Bleu),2,"0")
Debug "Couleur Hexa = " + ColHex$

Debug "----------------"

ResRed    = Int(Red(ColorRef)/51)   : RedWeb = ResRed * 51
ResGreen  = Int(Green(ColorRef)/51) : GreenWeb = ResGreen * 51
ResBlue   = Int(Blue(ColorRef)/51)  : BlueWeb = ResBlue * 51

ColWeb$   = "#"+RSet(Hex(RedWeb),2,"0")+RSet(Hex(GreenWeb),2,"0")+RSet(Hex(BlueWeb),2,"0") 

Debug "Couleur Web (216 couleurs)= " + ColWeb$
PS : Pour la couleur web, je ne suis pas trop sûr, quand même
Re-PS : Je m'étais planté de code : j'ai modifié :oops:
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Merci :D :D
Pourquoi divises tu par 51 pour remultiplier après ?
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

C'est un ancien code, celui que j'avais utilisé pour mon petit prog pour prélever la couleur d'un pixel.
A l'époque, on m'avait déjà posé la question. :lol:
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

la c'est le mode 216 couleurs mais on peut utiliser toute les couleurs maintenant.

entre le hex de la couleur pure et celui du web, il y a juste une histoire d'ordre
car la couleur hex de pure B G R alors qu'il faut RGB
donc il suffit d'inverser le R et le B et c'est bon

Code : Tout sélectionner

CouleurWeb.s = "#" + Hex(RGB(Bleu, Vert, Rouge))
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Merci aux deux :D
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

2tant intéressé par le code de Régis car plus cours, jel'ai essayé, mais il y a un petit problème : La commande Hex() vire tous les 0 à gauche donc j'ai mis

Code : Tout sélectionner

Couler.s = Hex(RGB(Blue(Couleur),Green(couleur),Red(Couleur)))
    Select Len(Couler)
      Case 2
        Couler = "0000" + Couler
      Case 3
        Couler = "000" + Couler
      Case 4
        Couler = "00" + Couler
      Case 5
        Couler = "0" + Couler
    EndSelect
Et ça marche, je rajoute encore la gestion des polices et je vous donne mon logiciel pour les emails :D
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

Essai plutot comme ça, moi aussi je trouve ton code trop long :roll:

Code : Tout sélectionner

 "#" + RSet(Hex(RGB(Bleu, Vert, Rouge)), 6, "0")
Au fait, c'est quoi que tu veux couler ? :mrgreen:
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Répondre