Transformation couleur hexa ---> 16 couleurs mirc

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 547 fois - Téléchargée 26 fois

Contenu du snippet

Ce code permet de convertir une couleur en format Hexadécimal à sa plus proche couleur mirc.

Source / Exemple :


<html>
<head>
<script>

var mirc= [
	"FFFFFF", "000000", 
	"7F0000", "007F00",
	"0000FF", "00007F",
	"7F007F", "007FFF",
	"00FFFF", "00FF00",
	"808040", "FFFF00",
	"FF0000", "FF00FF",
	"5C5C5C", "B8B8B8"
	];

function update()
{
		newwin = window.open('','test','width=400,height=200,toolbar=no,status=no,menubar=no,location=no,scrollbars=no,resizable=no')
		newwin.document.write("<font color='#"+document.form1.color.value+"' size=+2><b>Couleur HTML "+document.form1.color.value+"</b></font>");
		newcolor = irccolor(document.form1.color.value);
		newcolorHex = mirc[newcolor];
		newwin.document.write("<br><font color='#"+newcolorHex+"' size=+2><b>Couleur MIRC "+newcolor+"</b></font>");
}

function irccolor(hexcolor)
{
var red = 0
var green = 0
var blue = 0

red = parseInt(hexcolor.substr(0,2),16);
green = parseInt(hexcolor.substr(2,2),16);
blue = parseInt(hexcolor.substr(4,2),16);

var bestmirccoul = -1;
var bestdistance = 0;

for (var i = 0; i<16; i++)
{
 distance = Math.pow(red - parseInt(mirc[i].substr(0,2),16), 2) + Math.pow(green - parseInt(mirc[i].substr(2,2),16), 2) + Math.pow(blue - parseInt(mirc[i].substr(4,2),16), 2);
 distance = Math.pow(distance, 0.5);
 if (bestmirccoul < 0 || distance < bestdistance)
 {
  bestdistance = distance;
  bestmirccoul = i;
 }
}

alert("La couleur la plus proche de "+hexcolor+" est la couleur mirc "+bestmirccoul+" de distance "+distance);
return bestmirccoul;

}
</script>
</head>

<body>
<form name="form1">
	<input type="text" name="color" onchange="update();">
	<hr>
</form>
</body>
</html>

Conclusion :


il suffit de taper le code HEXA et faire TAB et la conversion se fait.

A voir également

Ajouter un commentaire

Commentaires

erreurs404
Messages postés
117
Date d'inscription
lundi 23 octobre 2000
Statut
Membre
Dernière intervention
12 août 2009
-
bon visiblement cette source ne sert qu'à moi ... vu qu'elle me convient ...
je me mets 10/10
cs_monstermax
Messages postés
36
Date d'inscription
jeudi 28 mars 2002
Statut
Membre
Dernière intervention
5 décembre 2002
-
yop, dis tu t kan meme pris la tete . moi g fais plus simple :

var color = new Array();
color[0] ="#ffffff"; // white
color[1] ="#000000"; // black
color[2] ="#00007f"; // blue
color[3] ="#007f00"; // green
color[4] ="#ff0000"; // light red
color[5] ="#7f0000"; // red
color[6] ="#9f009f"; // magenta
color[7] ="#ff7f00"; // orange
color[8] ="#ffff00"; // yellow
color[9] ="#00ff00"; // light green (lime)
color[10]="#006464"; // cyan
color[11]="#00ffff"; // light cyan (aqua)
color[12]="#0000ff"; // light blue
color[13]="#c200c2"; // light magenta (pink)
color[14]="#7a7a7a"; // grey
color[15]="#a6a6a6"; // light grey (silver)

ca calcul pas la couleur la plus proche, mais sinon ca suffit
erreurs404
Messages postés
117
Date d'inscription
lundi 23 octobre 2000
Statut
Membre
Dernière intervention
12 août 2009
-
monstermax, pouarf
ben tout l'intérêt de mon bout de code ... est justement de calculer la couleur la plus proche ... je te mets 01/10 pour hors sujet ! poiro !
:)

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.