/** fonction pour gérer les couleurs des styles (utilisé par Analyse et sketchlayer) */
function hexToColor (color) {
const result = []
for (let i = 1, l = color.length; i < l; i += 2) {
result.push(parseInt(color.slice(i, i + 2), 16))
}
// Reduction de l'opacité entre 0 et 1
if (result.length === 4) {
result[3] /= 255
}
return result.length >= 3 ? result : null
}
export function ensureColorArray (color) {
if (Array.isArray(color)) {
return color
}
if (color.startsWith('#')) {
return hexToColor(color)
}
if (color.startsWith('rgb(')) {
return color.slice(4, -1).split(',').map(i => +i)
}
if (color.startsWith('rgba(')) {
return color.slice(5, -1).split(',').map(i => +i)
}
}
export function getColorArray (color, opacity) {
const [r, g, b, a = 1] = ensureColorArray(color)
return [r, g, b, opacity !== undefined ? opacity : a]
}