开发中一直要把两种颜色互相转换,所以写了这个函数,我是新手,有不足的地方请指教。
/**十六进制颜色和rgba互相转换
* @param color 十六进制字符串,rgba数组
*/
function colorConvert(color) {
let a, b, c, d
if (color[0] === "#") {
a = parseInt(color[1] + color[2], 16)
b = parseInt(color[3] + color[4], 16)
c = parseInt(color[5] + color[6], 16)
d = parseInt(color[7] + color[8], 16)
return [a, b, c, d]
} else {
a = color[0].toString(16)
b = color[1].toString(16)
c = color[2].toString(16)
d = color[3].toString(16)
a = a.length === 2 ? a : '0' + a
b = b.length === 2 ? b : '0' + b
c = c.length === 2 ? c : '0' + c
d = d.length === 2 ? d : '0' + d
return '#' + a + b + c + d
}
}
运行结果
十六进制转换rgba格式
rgba格式转换十六进制
由于我不经常用到rgb格式,所以要转换不带alpha值格式的需要修改一下函数。
如有不足请指教哈