Code Snippet
Convert HEX to RGB
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 + “)”;
}
DigWP
A book and blog co-authored by Jeff Starr and myself about the World's most popular publishing platform.
Quotes on Design
Design, like Art, can be an elusive word to define and an awfully fun thing to have opinions about.
HTML-Ipsum
One-click copy to clipboard access to Lorem Ipsum text that comes wrapped in a variety of HTML.
Bookshelf
Hey Chris, what books do you recommend? These, young fertile mind, these.