如何使用javascript将RGBA转换为十六进制颜色代码
我尝试将如何使用javascript将RGBA转换为十六进制颜色代码,javascript,css,Javascript,Css,我尝试将rgba转换为十六进制颜色代码,但无法转换我能够转换的剩余颜色的不透明度值 下面是我的代码 var colorcode=“rgba(0,0,0,0.74)”; var finalCode=rgba2hex(颜色代码) 函数rgba2hex(orig){ var a,百分之, rgb=原始替换(/\s/g')。匹配(/^rgba?\((\d+)、(\d+)、(\d+)、(\d+)、([^、\s)]+)?/i), alpha=(rgb&&rgb[4]| |“”).trim(), 十六进制=
rgba
转换为十六进制颜色代码,但无法转换我能够转换的剩余颜色的不透明度值
下面是我的代码
var colorcode=“rgba(0,0,0,0.74)”;
var finalCode=rgba2hex(颜色代码)
函数rgba2hex(orig){
var a,百分之,
rgb=原始替换(/\s/g')。匹配(/^rgba?\((\d+)、(\d+)、(\d+)、(\d+)、([^、\s)]+)?/i),
alpha=(rgb&&rgb[4]| |“”).trim(),
十六进制=rgb?
(rgb[1]| 1由于rgba()符号中的alpha通道表示为0~1值,因此在尝试将其转换为十六进制形式之前,需要将其乘以255:
var colorcode=“rgba(0,0,0,0.74)”;
var finalCode=rgba2hex(颜色代码)
函数rgba2hex(orig){
var a,百分之,
rgb=原始替换(/\s/g')。匹配(/^rgba?\((\d+)、(\d+)、(\d+)、(\d+)、([^、\s)]+)?/i),
alpha=(rgb&&rgb[4]| |“”).trim(),
十六进制=rgb?
(rgb[1]| 1Great@kaido,我试过这种方法
function rgba2hex(orig) {
var a, isPercent,
rgb = orig.replace(/\s/g, '').match(/^rgba?\((\d+),(\d+),(\d+),?([^,\s)]+)?/i),
alpha = (rgb && rgb[4] || "").trim(),
hex = rgb ?
(rgb[1] | 1 << 8).toString(16).slice(1) +
(rgb[2] | 1 << 8).toString(16).slice(1) +
(rgb[3] | 1 << 8).toString(16).slice(1) : orig;
if (alpha !== "") {
a = alpha;
} else {
a = 01;
}
a = Math.round(a * 100) / 100;
var alpha = Math.round(a * 255);
var hexAlpha = (alpha + 0x10000).toString(16).substr(-2).toUpperCase();
hex = hex + hexAlpha;
return hex;
}
函数rgba2hex(orig){
var a,百分之,
rgb=原始替换(/\s/g')。匹配(/^rgba?\((\d+)、(\d+)、(\d+)、(\d+)、([^、\s)]+)?/i),
alpha=(rgb&&rgb[4]| |“”).trim(),
十六进制=rgb?
(rgb[1]| 1如果将rgba颜色作为字符串,则可以执行以下操作
const color = 'rgba(249,6,6,1,0)';
const rgba = color.replace(/^rgba?\(|\s+|\)$/g, '').split(',');
const hex = `#${((1 << 24) + (parseInt(rgba[0]) << 16) + (parseInt(rgba[1]) << 8) + parseInt(rgba[2])).toString(16).slice(1)}`;
console.log(hex); // #f90606
const color='rgba(249,6,6,1,0)';
const rgba=color.replace(/^rgba?\(|\s+|\)$/g',).split(',');
const hex=`#${((1只需创建一个更有效的函数!代码与上面相同
var颜色;
函数十六进制代码(颜色){
const rgba=color.replace(/^rgba?\(|\s+|\)$/g',).split(',');
const hex=`#${((1)github上的color2color库可能就是您想要的:看看哪一个会给您一个RGBA数组,如果需要的话,它可以简单地转换为十六进制。刚刚测试了您的函数,它不适合alpha通道。这不适合alpha通道