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


代码执行转换结果:

php中RGB转十六进制、十六进制转RGB_第1张图片

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"));
?>





附:js调色器(js弹出颜色选择框