JavaScript从十六进制中获取alpha值
我正在开发一个工具,将转换html颜色之间的任何格式,如RGB,RGBA,十六进制,HSLA,命名等 以及用于IE6中过滤器的HEXFFFFFF到Alpha HEX 00FFFFFF。 但是,我的问题是,我无法将alpha值即00从alpha十六进制颜色转换为rgba alpha值即0.5。JavaScript从十六进制中获取alpha值,javascript,html,Javascript,Html,我正在开发一个工具,将转换html颜色之间的任何格式,如RGB,RGBA,十六进制,HSLA,命名等 以及用于IE6中过滤器的HEXFFFFFF到Alpha HEX 00FFFFFF。 但是,我的问题是,我无法将alpha值即00从alpha十六进制颜色转换为rgba alpha值即0.5。 请帮助我…只需将前两位数字从十六进制转换为数字,然后除以255即可 var rx = /^#([0-9a-f]{2})[0-9a-f]{6}$/i; var m = rx.match(theColor);
请帮助我…只需将前两位数字从十六进制转换为数字,然后除以255即可
var rx = /^#([0-9a-f]{2})[0-9a-f]{6}$/i;
var m = rx.match(theColor);
if (m) {
alpha = parseInt(m[1], 16) / 255;
}
只需将前2位数字从十六进制转换为数字,然后除以255即可
var rx = /^#([0-9a-f]{2})[0-9a-f]{6}$/i;
var m = rx.match(theColor);
if (m) {
alpha = parseInt(m[1], 16) / 255;
}
我知道你已经接受了肯尼特的答案,但我想我还是要补充一下。您可以对十六进制转换后的数字使用移位和掩蔽来获得其某些部分:
// Return an array in the format [ red, green, blue, alpha ]
function hex2rgba(str) {
var num = parseInt(str.slice(1), 16); // Convert to a number
return [num >> 16 & 255, num >> 8 & 255, num & 255, num >> 24 & 255];
}
var rgba = hex2rgba("#00FFFFFF");
// -> [255, 255, 255, 0]
然后,您可以将最后一个元素除以255,得到一个可用于IE过滤器的值
更多信息:
我知道你已经接受了肯尼特的答案,但我想我还是要补充一下。您可以对十六进制转换后的数字使用移位和掩蔽来获得其某些部分:
// Return an array in the format [ red, green, blue, alpha ]
function hex2rgba(str) {
var num = parseInt(str.slice(1), 16); // Convert to a number
return [num >> 16 & 255, num >> 8 & 255, num & 255, num >> 24 & 255];
}
var rgba = hex2rgba("#00FFFFFF");
// -> [255, 255, 255, 0]
然后,您可以将最后一个元素除以255,得到一个可用于IE过滤器的值
更多信息:
是的,谢谢!我喜欢你的答案,因为它能处理JavaScript将位运算符的操作数作为有符号的32位整数。是的,谢谢!我喜欢您的答案的地方在于,它负责JavaScript将按位运算符的操作数处理为有符号32位整数。