Give function hex code (e.g. #eeeeee), returns array of RGB values.
function hex2rgb( $colour ) {
if ( $colour[0] == '#' ) {
$colour = substr( $colour, 1 );
}
if ( strlen( $colour ) == 6 ) {
list( $r, $g, $b ) = array( $colour[0] . $colour[1], $colour[2] . $colour[3], $colour[4] . $colour[5] );
} elseif ( strlen( $colour ) == 3 ) {
list( $r, $g, $b ) = array( $colour[0] . $colour[0], $colour[1] . $colour[1], $colour[2] . $colour[2] );
} else {
return false;
}
$r = hexdec( $r );
$g = hexdec( $g );
$b = hexdec( $b );
return array( 'red' => $r, 'green' => $g, 'blue' => $b );
}
Thanks, I used it as a good starting point.
I’ve updated it slightly to be shorter and with the assumption the end hex is always 6 characters (as I control the input). The str_split() might be helpful for your code maybe?
function($hexString){
$hexString = preg_replace(“/[^abcdef]/i”,””,$hexString);
if(strlen($hexString)==6){
list($r,$g,$b) = str_split($hexString,2);
return Array(“r”=>hexdec($r),”g”=>hexdec($g),”b”=>hexdec($b));
}
I just realised I didn’t copy the entire code.
There’s a false missing off the end! heh….
function hex2rgb($hexString){
$hexString = preg_replace(“/[^abcdef]/i”,””,$hexString);
if(strlen($hexString)==6){
list($r,$g,$b) = str_split($hexString,2);
return Array(“r”=>hexdec($r),”g”=>hexdec($g),”b”=>hexdec($b));
}
return false;
}
If anyone is interested in a javascript equivalent I used this (Not perfect but seems to do the job) :
function hex2rgb( colour ) {
var r,g,b;
if ( colour.charAt(0) == ‘#’ ) {
colour = colour.substr(1);
}
r = colour.charAt(0) + ” + colour.charAt(1);
g = colour.charAt(2) + ” + colour.charAt(3);
b = colour.charAt(4) + ” + colour.charAt(5);
r = parseInt( r,16 );
g = parseInt( g,16 );
b = parseInt( b ,16);
return “rgb(” + r + “,” + g + “,” + b + “)”;
}
Thanks its really working. With some modification it can also b used for rgba color code just adding one more parameter.
I want to say that this site has high quality content!!!
Of course, the code above, was just what I wanted.
thanks, you are a life saver. I needed this for a client project and had been playing for ages but I couldn’t get it quite right!
Thanks again!
Super awesome code snippet to put inside a WordPress plugin!
Here is another smaller function to convert hex to rgb
This is badass, thanks a lot. I wonder if there’s a resource that clearly and concisely explains that notation to a an idiot …
HEX to RGB via PHP in one line.
list($r,$g,$b) = array_map('hexdec',str_split($colorVar,2));
or if you want the variable to have the # prefix then:
list($r,$g,$b) = array_map('hexdec',str_split(ltrim($colorVar, '#'),2));
This is a very minimal way to do it it seems:
Found here: https://stackoverflow.com/questions/15202079/convert-hex-color-to-rgb-values-in-php