UNPKG

color-to-vec4

Version:

:white_square_button: a color (rgb, rgba, hex) to vec4 convertor

35 lines (25 loc) 880 B
import mapChannel from './mapChannel'; import normalize from './normalize'; export default (function (color) { var alpha = false; if (color.startsWith('rgba(')) alpha = true;else if (color.startsWith('rgb(')) alpha = false; var split = alpha ? 'rgba(' : 'rgb('; var channels = color.split(split)[1].split(')')[0].split(','); if (channels.length < 3 || channels.length > 4) { throw new Error(color + ' is not a valid rgb(a) color'); } channels = channels.map(function (c) { return parseFloat(c); }).map(function (c) { return normalize(0, 255, c); }); var _channels = channels, r = _channels[0], g = _channels[1], b = _channels[2], _channels$ = _channels[3], a = _channels$ === undefined ? 1 : _channels$; var aa = normalize(0, 1, a); var rgb = [r, g, b].map(mapChannel); return [].concat(rgb, [aa]); });