Snippets v2

Languages
My Snippets

Convert Hex Colour codes to their RGB values Login or Register to Bookmark this snippet

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 Contact JC

Added by JC on 13th January, 2008

Comments

There are no comments about this snippet.

Post Comment HTML is allowed

You must be registered and logged in to post a comment.

Login here to post a comment