16进制hex转rgba
/**
* 16进制转rgba
* @param hex 16进制颜色
* @param opacity 透明度
* @param output 输出模式,默认string,obj为返回对象结构
* */
const hexToRgba = (hex, opacity, output="string") => {
let red = parseInt("0x" + hex.slice(1, 3));
let green = parseInt("0x" + hex.slice(3, 5));
let blue = parseInt("0x" + hex.slice(5, 7));
if (output === "string") {
return `rgba(${red},${green},${blue},${opacity})`
} else {
return { red, green, blue, alpha: opacity * 255 }
}
};
/**
* 16进制转rgba
* */
let testColor = "rgb(20, 20, 20)";
const rgbToHex = (color) => {
let arr = color.split(',');
let r = +arr[0].split('(')[1];
let g = +arr[1];
let b = +arr[2].split(')')[0];
let value = (1 << 24) + r * (1 << 16) + g * (1 << 8) + b;
value = value.toString(16);
return '#' + value.slice(1);
};