上一篇博文《PHP十六进制颜色值转RGB颜色值的方法》说了一下十六进制颜色值转RGB颜色值的方法,那么这篇文章说一说RBG颜色值转十六进制颜色值的方法。
php RGB颜色值转十六进制颜色值的方法
php RGB颜色值转十六进制颜色值,只需要分别将RGB颜色值中的 R,G,B转成十六进制即可!
php函数
/** * # RGB颜色值转十六进制颜色值 * @param string $rgb RGB颜色值(rgb(255,255,255)) * * @return string */ 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 = null; $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; }
函数调用:
print_r(rgbTohex('rgb(0,0,0)')); //#000000 print_r(rgbTohex('rgb(255,255,255)')); //#FFFFFF