本篇文章是对在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; } ?>
|