php Hex RGB颜色值互换的使用

  

复制代码 代码如下:

  <?php

  echo implode ( ",", HexToRGB ( "#F7F7DA" ) ) . "<br/>";

  echo RGBToHex ( "rgb(247,247,218)" )?>

  <?php

  function HexToRGB($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

  );

  }

  function RGBToHex($rgb) {

  $regexp = "/^rgb\(([0-9]{0,3})\,\s*([0-9]{0,3})\,\s*([0-9]{0,3})\)/";

  $re = preg_match ( $regexp, $rgb, $match );

  $re = array_shift ( $match );

  $hexColor = "#";

  $hex = array (

  '0',

  '1',

  '2',

  '3',

  '4',

  '5',

  '6',

  '7',

  '8',

  '9',

  'A',

  'B',

  'C',

  'D',

  'E',

  'F'

  );

  for($i = 0; $i < 3; $i ++) {

  $r = null;

  $c = $match [$i];

  $hexAr = array ();

  while ( $c > 16 ) {

  $r = $c % 16;

  $c = ($c / 16) >> 0;

  array_push ( $hexAr, $hex [$r] );

  }

  array_push ( $hexAr, $hex [$c] );

  $ret = array_reverse ( $hexAr );

  $item = implode ( '', $ret );

  $item = str_pad ( $item, 2, '0', STR_PAD_LEFT );

  $hexColor .= $item;

  }

  return $hexColor;

  }

  ?>