Convert Hex Colour codes to their RGB values

Description PHP

Takes a string, examples: #ff0000, #ff0, fcc800, ffc, white, black, red and converts it to the RGB values. Returns an array.

Usage:
$arr = html2rgb('#ffc800');
$red = $arr[0];
$grn = $arr[1];
$blu = $arr[2];

The Code Download

  1. <?php
  2. function html2rgb($hex_string) {
  3.     //trim # from string
  4.     $string = strtoupper(trim(trim($hex_string),'#'));
  5.     //echo dba($hex_string);
  6.     switch ($string) {
  7.         case 'WHITE':
  8.             return array(255,255,255);
  9.             break;
  10.         case 'BLACK':
  11.             return array(0,0,0);
  12.             break;
  13.         case 'RED':
  14.             return array(255,0,0);
  15.             break;
  16.         case 'BLUE':
  17.             return array(0,0,255);
  18.             break;
  19.         case 'GREEN':
  20.             return array(0,255,0);
  21.             break;
  22.         case 'YELLOW':
  23.             return array(255,255,0);
  24.             break;
  25.         default:
  26.             //check for short value
  27.             if (strlen($string) == 3) {
  28.                 //short
  29.                 $r = substr($string, 0, 1);
  30.                 $g = substr($string, 1, 1);
  31.                 $b = substr($string, 2, 1);
  32.                 //double up
  33.                 $r .= $r;
  34.                 $g .= $g;
  35.                 $b .= $b;
  36.             } else {
  37.                 //long
  38.                 $r = substr($string, 0, 2);
  39.                 $g = substr($string, 2, 2);
  40.                 $b = substr($string, 4, 2);
  41.             }
  42.  
  43.             //due to some stange anomally, a value of FF returns 0 instead of 255. We shall need to fix this.
  44.             if ($r == 'FF') {
  45.                 $rval = 255;
  46.             } else {
  47.                 $rval = hexdec($r);
  48.             }
  49.             if ($g == 'FF') {
  50.                 $gval = 255;
  51.             } else {
  52.                 $gval = hexdec($g);
  53.             }
  54.             if ($b == 'FF') {
  55.                 $bval = 255;
  56.             } else {
  57.                 $bval = hexdec($b);
  58.             }
  59.  
  60.             return array($rval,$gval,$bval);
  61.             break;
  62.     }
  63. } //end function
  64. ?>

Credits

Added by JC on 14th January 2008

Comments

There are no comments about this snippet.

Post Comment Github Markdown Supported

You must be logged in to post a comment.

Login here to post a comment