diff --git a/src/shared/color.js b/src/shared/color.js index bff29f61c7522427fba56cdb8c4e48c7dd03db25..fb2d2168dec73310853743b7b30b23e748586a8f 100644 --- a/src/shared/color.js +++ b/src/shared/color.js @@ -8,14 +8,14 @@ a: number; } */ -export function hexToRgba (hex) { +export function hexToRgba(hex) { // 异常情况 if (!hex) { return { r: 0, g: 0, b: 0, - a: 0 + a: 0, } } // 去掉 # @@ -27,24 +27,24 @@ export function hexToRgba (hex) { r: 0, g: 0, b: 0, - a: 0 + a: 0, } } // 格式化 tmpHex,使其变成 rrggbb 或 rrggbbaa if (tmpHexLen === 3 || tmpHexLen === 4) { // rgb => rrggbb || rgba => rrggbbaa - tmpHex = tmpHex.replace(/(\w{1})/g, 'r1r1') + tmpHex = tmpHex.replace(/(\w{1})/g, '$1$1') } - // r1 ~ a2 - const [r1, r2, g1, g2, b1, b2, a1, a2] = tmpHex.match(/(\w{1})/g) + // rgba + let [sr, sg, sb, sa] = tmpHex.match(/(\w{2})/g) // rgb - const r = parseInt(r1) * 16 + parseInt(r2); const g = parseInt(g1) * 16 + parseInt(g2); const b = parseInt(b1) * 16 + parseInt(b2) + const r = parseInt(sr, 16), g = parseInt(sg, 16), b = parseInt(sb, 16) - if (!a1) { + if (!sa) { return { r, g, b, a: 1 } } return { - r, g, b, a: (`0x100${a1}${a2}` - 0x10000) / 255 + r, g, b, a: (`0x100${sa}` - 0x10000) / 255 } }