我找到了一个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