Convertir une couleur Héxa en rgb et inversement
Category : Function php utile
Added on : Le 30 avril 2015
Author : kotshiro
readings : 2532
969 Personnes aiment ce tuto et vous !!
Note :  [ Rate ]

Voici une function très utile pour convertir une couleur héxa en rgb ou rgba ( avec opacité ).

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

}
Voici comment l'utilisé :

Conversion hexadécimal => RGB


$couleur = "#f0f0f0";

echo convertColor($couleur);
Ce qui renverra cette couleur en rgb que voici :

240,240,240

Conversion RGB => hexadecimal


$couleur = "85,170,102";

echo convertColor($couleur);
Ce qui renverra l'héxa suivant :
#55AA66
C'est pratique aussi si vous avez une opacité a faire avec votre bgcolor du thème du style:

$couleur = $bgcolor2;

$opacitengcolor  =  convertColor($couleur);

ce qui renverra par exemple pour un background en rgba :

background: rgba($opacitengcolor, 0.5);

vous aurez une opacité à 0.5