-
-
/** - * 16 進数 RGB カラー値の交換
- * bbs.it-home.org を編集
- * 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 $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;
- }< ;/p>
//调用例
- echo implode ( ",", HexToRGB ( "#F7F7DA" ) ) 。 "
";
- echo RGBToHex ( "rgb(247,247,218)" );
- ?>
-
复制發
|