Une fonction pour la conversion de couleurs RGB <=> HTML (hexadécimal)
la fonction convertColor() est très utile car elle permet de convertir une couleur parramètrée en valeurs RGB (rouge vers bleu de 0 à 255) vers sa forme hexadécimale souvent utilisée dans le language HTML (type #F0F0F0) et vice versa. La fonction détecte automatiquement le format de la couleur et renvoie le code couleur converti. Cette fonction fait partie de notre librairie ColorLib PHP
Documentation :
convertColor - conversion de couelur en PHP
fonction - convertColor ( string $rgb_color or array($array_rgb_values) or string $hexadecimal_color)
<?php
function convertColor($color){
#convert hexadecimal to RGB
if(!is_array($color) && preg_match("/^[#]([0-9a-fA-F]{6})$/",$color)){
$hex_R = substr($color,1,2);
$hex_G = substr($color,3,2);
$hex_B = substr($color,5,2);
$RGB = hexdec($hex_R).",".hexdec($hex_G).",".hexdec($hex_B);
return $RGB;
}
#convert RGB to hexadecimal
else{
if(!is_array($color)){$color = explode(",",$color);}
foreach($color as $value){
$hex_value = dechex($value);
if(strlen($hex_value)<2){$hex_value="0".$hex_value;}
$hex_RGB.=$hex_value;
}
return "#".$hex_RGB;
}
}
?>
Exemples de conversion de couleurs
Conversion hexadécimal => RGB
<?php
$couleur = "#51f3d6";
echo convertColor($couleur);
?>
Conversion hexadécimal => RGB
<?php
$couleur = "#51f3d6";
echo convertColor($couleur);
?>
Le résultat affichera : 81,243,214
Un autre exemple qui permet d'obtenir les couleur RGB séparées dans un tableau php :
<?php
$couleur = "#51f3d6";
$RGB = explode(",",convertColor($couleur));
echo $RGB[0]."<br/>";
echo $RGB[1]."<br/>";
echo $RGB[2]."<br/>";
?>
Ce qui affiche :
81
243
214
Conversion RGB => hexadecimal
<?php
$couleur = "234,145,29";
echo convertColor($couleur);
?>
Le résultat affiche : #ea911d
Nous aurions aussi pu mettre notre couleur RGB parramètrées séparément dans un tableau php :
<?php
$couleur = array(234,145,29);
echo convertColor($couleur);
?>
Le résultat aurait été identique : #ea911d
Mais cette technique est utile car dans de nombreuses applications (dessin sous GD) les tranches de couleurs sont traitées séparément.

