Convertir un code hexadecimal en couleur

cs_rappeur Messages postés 9 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 26 octobre 2004 - 15 oct. 2004 à 08:36
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 - 15 oct. 2004 à 12:16
Bonjour,
J'aimerais savoir comment convertir un code hexadecimale du genre #CC99FF en nom de couleur genre rouge!
Merci de votre aide!
A voir également:

14 réponses

taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
15 oct. 2004 à 09:00
Est ce que tu veux un nom de couleur ou la couleur
si c la couluer pour l'affecter à un controle
essaie de convertir ton hexa en entier et apres utilise Color.FromArgb(int)

il existe aussi ColorConverter, mais je ne l'utilise pas, donc je ne peux pas t'en dire plus
0
cs_rappeur Messages postés 9 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 26 octobre 2004
15 oct. 2004 à 09:06
J'aimerais avoir en sortie le nom de la couleur... je vais essayer! à toute
0
cs_rappeur Messages postés 9 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 26 octobre 2004
15 oct. 2004 à 09:13
voilà ma fonction mais ca ne fonctionne pas très bien...

//fonction convert
private string ConvertColor(string ColorHexa)
{
int color = citiConvert.ToInt(ColorHexa);Color colorC new Color(); colorC Color.FromArgb(color);
string colorName = color.ToString(); return colorName ;
}

//appel de la fonction
string color = ConvertColor("#CCFF33");

Peux-tu m'aider???
0
taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
15 oct. 2004 à 10:04
déjà citiConvert, moi j'ai pas ca, donc je peux pas testé

autrement, dans tous les cas,
ca ne va jamais te donner le nom de la couleur

Moi, je ne connais pas d'autres moyen de transformer un entier en couleur

La classe color a bien apres une méthode ToName, mais ca ne marche pas si tu rentre la couleur avec argb.

Moi comme ca de prime abord, il faudrait parcourir tous les types et comparer leurs valeurs a avec ta valeur recupérer la plus proche , et comme ca tu auras un nom qui s'aproche de ta valeur

Par contre pour ton hexadécimal, je me demande si il ne faut pas que tu la manipules parce qu'il me semble que l'hexa est constitué comme suit
#RRVVBB les RR sont la valeurs rouge, les VV sont la valeur verte, et bb la valeur bleu

Il faudrait des lors que tu parcoures tous les types de couleurs prédéfinies trois fois une fois pour rouge, une fois pour vert une fois pour bleu, tu rempli un tableu, avec une ligne par tpye de couleur et la valeur différentiel avec les valeurs que tu as

La couleur prédéfnie qui correspond à ton code serait la couleur qui a comme valeur 0 dans ton tableau

Après, je te dis peut etre des conneries et c peut etre suprer compliqué par rapport à une fonction qui existe mais que je ne connais pas

je n'ai pas letemps de faire des tests ni de trop chercher, donc je te laisse avec ces idées

bon courage
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
15 oct. 2004 à 10:10
Color color = ColorTranslator.FromHtml(ColorHexa);


pour ce qui est du nom je ne vois pas non plus d'autre solution que la comparaison avec les couleurs définies en static dans la structure Color

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
cs_rappeur Messages postés 9 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 26 octobre 2004
15 oct. 2004 à 10:21
Yeah merci à vous!
Surtout à toi le coq parce que la variante à taoetc est un peu compliqué pour moi...
mais maintenant que j'ai la couleur en RGB puis-je avoir le nom exact de la couleur?
0
cs_rappeur Messages postés 9 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 26 octobre 2004
15 oct. 2004 à 10:21
Parce que en fait mon but est de transformer la valeur hexadécimale en nom de couleur déjà définie...!
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
15 oct. 2004 à 10:52
en fait pour l'exemple que tu as donné apparemment il n'existe pas de couleur predefinie
sinon le code de comparaison :

//fonction convert
private string ConvertColor(string ColorHexa)
{
Color color = ColorTranslator.FromHtml(ColorHexa);
string colorName = "";
PropertyInfo[] pinfos = typeof(Color).GetProperties(BindingFlags.Public | BindingFlags.Static );

foreach ( PropertyInfo pinfo in pinfos )
{
Color namedColor = (Color)pinfo.GetValue(null, null);
if (  namedColor.ToArgb() == color.ToArgb() )
{
colorName = namedColor.Name;
break;
}
}

return colorName;
}


Cocoricoooooooo !!!!
coq
MVP Visual C#
0
taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
15 oct. 2004 à 10:58
il est fort le coq, il est vraiment fort

Je t'aurais fait une petite usine à gaz moi ( sauf que moi j'aurais trouvé la couleur prédéfinie qui s'approche le plus de la couleur passée , na)

[:-D]
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
15 oct. 2004 à 11:13
ben donne quand même le code ça peut etre utile je pense :)
mieux vaut trop d'exemples que pas assez ;)

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
15 oct. 2004 à 11:24
fiou faut que j'écrive le code , je donne le principe dac

créé un liste d'objet à deux valeurs:
premier : le nom de la couleur
deuxieme : un entier représentant un ecart

apres on récupére la valeur de l'hexadécimal comme tu as fait et chaque valeur rouge , vert , bleu

Color MaCouleur = ColorTranslator.FromHtml(ColorHexa);
int rouge = MaCouleur.R;
int vert = MaCouleur.G;
int bleu = MaCouleur.B;


pour chaque couleur prédéfinie

je rentre dans ma liste ,
le nom de la couleur et les ecarts entre chaque type de couleur

une fois que c fait, je parcours ma liste en recherchant l'écart le plus petit et j'ai le nom de la couleur la plus proche

voila, la conception est faite, à vous de coder si vous voulez
0
cs_rappeur Messages postés 9 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 26 octobre 2004
15 oct. 2004 à 11:26
j'ai essayé ta fonction mais elle me retourne rien!
mon appel est : string ColorHexa ="#CCFF33";
peux-tu m'expliquer pourquoi? merci
0
cs_rappeur Messages postés 9 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 26 octobre 2004
15 oct. 2004 à 11:28
si c'est possible d'avoir le nom de la couleur la plus proche ça irait bien...
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
15 oct. 2004 à 12:16
et le sourire de la cremiere ;o)))

a mon avis tu va avoir du mal a sortir le nom approchant de ta couleur...

soit tu bride les couleurs dispo à celle contenu dans la structure color
soit tu fais une usine pour trouver la couleur approchant...
mais alors la...

good luck...

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
Rejoignez-nous