【发布时间】:2012-04-03 16:04:20
【问题描述】:
我找到了一个 RGB 到十六进制转换器,我正在尝试制作一个 RGBA 到十六进制转换器。原来的 rgb2hex 函数有效,但新的 rgba2hex 函数无效。我究竟做错了什么? rgba 函数返回 gba,没有 r。
// convert RGB color data to hex
function rgb2hex(r, g, b) {
if (r > 255 || g > 255 || b > 255)
throw "Invalid color component";
return ((r << 16) | (g << 8) | b).toString(16);
}
// convert RGBA color data to hex
function rgba2hex(r, g, b, a) {
if (r > 255 || g > 255 || b > 255 || a > 255)
throw "Invalid color component";
return ((r << 32) | (g << 16) | (b << 8) | a).toString(16);
}
例子:
alert(rgb2hex(255, 155, 055));
alert(rgba2hex(255, 155, 055, 255));
当前输出:ff9b2d 和 9b2dff
预期输出:ff9b2d 和 ff9b2dff
【问题讨论】:
标签: javascript