function correctionCouleur(couleur)
{
// Le code Hexa de la couleur doit être valide
couleur = String(hex).replace(/[^0-9a-f]/gi, '');
if (couleur.length < 6)
{
couleur = couleur[0]+couleur[0]+couleur[1]+couleur[1]+couleur[2]+couleur[2];
}
// Découpage de la valeur en Hexa en couleur
var rouge = couleur[0]+couleur[1];
var vert = couleur[2]+couleur[3];
var bleu = couleur[4]+couleur[5];
var couleurCorrigee = couleur;
// Cas où la couleur est trop sombre
if(rouge == "00" && parseInt(vert, 16) <= 64 && parseInt(bleu, 16) <= 64)
{
var nouveauBleu = parseInt(bleu, 16);
nouveauBleu = nouveauBleu + (65 - nouveauBleu);
nouveauBleu = (nouveauBleu-0).toString(16);
var nouveauVert = parseInt(vert, 16);
nouveauVert = nouveauVert + (65 - nouveauVert);
nouveauVert = (nouveauVert-0).toString(16);
couleurCorrigee = rouge + nouveauVert + nouveauBleu;
}
if(bleu == "00" && parseInt(rouge, 16) <= 64 && parseInt(vert, 16) <= 64)
{
var nouveauVert = parseInt(vert, 16);
nouveauVert = nouveauVert + (65 - nouveauVert);
nouveauVert = (nouveauVert-0).toString(16);
var nouveauRouge = parseInt(rouge, 16);
nouveauRouge = nouveauRouge + (65 - nouveauRouge);
nouveauRouge = (nouveauRouge-0).toString(16);
couleurCorrigee = nouveauRouge + nouveauVert + bleu;
}
if(vert == "00" && parseInt(bleu, 16) <= 64 && parseInt(rouge, 16) <= 64)
{
var nouveauRouge = parseInt(rouge, 16);
nouveauRouge = nouveauRouge + (65 - nouveauRouge);
nouveauRouge = (nouveauRouge-0).toString(16);
var nouveauBleu = parseInt(bleu, 16);
nouveauBleu = nouveauBleu + (65 - nouveauBleu);
nouveauBleu = (nouveauBleu-0).toString(16);
couleurCorrigee = nouveauRouge + vert + nouveauBleu;
}
// Cas où la couleur est trop claire
if(rouge == "FF" && parseInt(vert, 16) >= 192 && parseInt(bleu, 16) >= 192)
{
var nouveauBleu = parseInt(bleu, 16);
nouveauBleu = nouveauBleu - (nouveauBleu - 193);
nouveauBleu = (nouveauBleu-0).toString(16);
var nouveauVert = parseInt(bleu, 16);
nouveauVert = nouveauVert - (nouveauVert - 193);
nouveauVert = (nouveauVert-0).toString(16);
couleurCorrigee = rouge + nouveauVert + nouveauBleu;
}
if(bleu == "FF" && parseInt(rouge, 16) >= 192 && parseInt(vert, 16) >= 192)
{
var nouveauVert = parseInt(bleu, 16);
nouveauVert = nouveauVert - (nouveauVert - 193);
nouveauVert = (nouveauVert-0).toString(16);
var nouveauRouge = parseInt(rouge, 16);
nouveauRouge = nouveauRouge - (nouveauRouge - 193);
nouveauRouge = (nouveauRouge-0).toString(16);
couleurCorrigee = nouveauRouge + nouveauVert + bleu;
}
if(vert == "FF" && parseInt(bleu, 16) >= 192 && parseInt(rouge, 16) >= 192)
{
var nouveauRouge = parseInt(rouge, 16);
nouveauRouge = nouveauRouge - (nouveauRouge - 193);
nouveauRouge = (nouveauRouge-0).toString(16);
var nouveauBleu = parseInt(bleu, 16);
nouveauBleu = nouveauBleu - (nouveauBleu - 193);
nouveauBleu = (nouveauBleu-0).toString(16);
couleurCorrigee = nouveauRouge + vert + nouveauBleu;
}
// Retour de la couleur corrigée
return couleurCorrigee;
}