chroma-js
Version:
JavaScript library for color conversions
25 lines (22 loc) • 746 B
text/coffeescript
Color::set = (modechan, value) ->
me = @
[mode,channel] = modechan.split '.'
if channel
src = me[mode]()
i = mode.indexOf channel
if i > -1
if type(value) == 'string'
switch value.charAt(0)
when '+' then src[i] += +value
when '-' then src[i] += +value
when '*' then src[i] *= +(value.substr(1))
when '/' then src[i] /= +(value.substr(1))
else src[i] = +value
else
src[i] = value
else
console.warn 'unknown channel '+channel+' in mode '+mode
else
src = value
me._rgb = chroma(src, mode).alpha(me.alpha())._rgb
me