【发布时间】:2012-02-03 19:41:03
【问题描述】:
我在将三重十六进制颜色代码转换为RGB颜色代码时遇到了麻烦。
到目前为止,我对 HEX 到 RGB 的了解是:
if(strlen($hex) == 3) {
$color['r'] = hexdec(substr($hex, 0, 1) . $r);
$color['g'] = hexdec(substr($hex, 1, 1) . $g);
$color['b'] = hexdec(substr($hex, 2, 1) . $b);
}
当我将 RGB 代码转换回 HEX 时,它是不同的。
例如:#FFF becomes 15, 15, 15 但15, 15, 15 is #0F0F0F
我也不确定将 RGB 转换回三重 HEX 代码。我的 RGB 转 HEX 代码如下所示:
$hex = str_pad(dechex($r), 2, "0", STR_PAD_LEFT);
$hex.= str_pad(dechex($g), 2, "0", STR_PAD_LEFT);
$hex.= str_pad(dechex($b), 2, "0", STR_PAD_LEFT);
非常感谢任何帮助!提前致谢!
【问题讨论】:
-
似乎“去掉填充物”会恢复原状?您需要提前知道要输出 3 还是 6:如果输出 6,则将每个组件缩放 16。有些浏览器可能不支持 3,所以我总是发出 6。
-
这就是我将 RGB 恢复为 HEX 的方式,对吧?但是三重 HEX 代码中的错误 RGB 代码怎么办?
-
@pst 那应该是答案而不是评论?多花点功夫来解释该评论,您可以获得一些不错的声誉积分。