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);

?>

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.