/** - * Hex RGB颜色值互换
- * Edit bbs.it-home.org
- * at 2013/5/11
- */
- 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;
- }
//调用示例 - echo implode ( ",", HexToRGB ( "#F7F7DA" ) ) . "
"; - echo RGBToHex ( "rgb(247,247,218)" );
- ?>
|