php中RGB转十六进制、十六进制转RGB

在js调色器中,不同的浏览器获取到的颜色值会不一样,比如ie是十六进制:#FF00FF,而火狐和谷歌浏览器中:rgb(255,255,255)。

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; }/*** 十六进制转 RGB* @param string $hexColor 十六颜色 ,如:#ff00ff* @return array RGB数组*/function hColor2RGB($hexColor) { $color = str_replace('#', '', $hexColor); if (strlen($color) > 3) { $rgb = array( 'r' => hexdec(substr($color, 0, 2)), 'g' => hexdec(substr($color, 2, 2)), 'b' => hexdec(substr($color, 4, 2)) ); } else { $color = str_replace('#', '', $hexColor); $r = substr($color, 0, 1) . substr($color, 0, 1); $g = substr($color, 1, 1) . substr($color, 1, 1); $b = substr($color, 2, 1) . substr($color, 2, 1); $rgb = array( 'r' => hexdec($r), 'g' => hexdec($g), 'b' => hexdec($b) ); } return $rgb;}print_r(RGBToHex("rgb(255,255,255)")); //RGB转 16进制print_r(hColor2RGB('#ff00ff')); //十六进制转 RGB

代码执行转换结果:

16进制颜色转换为RGB色值,另一种方法:

3) {$rgb = array('r' => hexdec(substr($color, 0, 2)),'g' => hexdec(substr($color, 2, 2)),'b' => hexdec(substr($color, 4, 2)));} else {$color = str_replace('#', '', $hexColor);$r = substr($color, 0, 1) . substr($color, 0, 1);$g = substr($color, 1, 1) . substr($color, 1, 1);$b = substr($color, 2, 1) . substr($color, 2, 1);$rgb = array('r' => hexdec($r),'g' => hexdec($g),'b' => hexdec($b));}return $rgb;}print_r(hex2rgb("#FFFFFF"));?>

附: