UNPKG

chroma-js

Version:

JavaScript library for color conversions

33 lines (30 loc) 719 B
const {unpack} = require('../../utils'); const {min,max} = Math; /* * supported arguments: * - rgb2hsv(r,g,b) * - rgb2hsv([r,g,b]) * - rgb2hsv({r,g,b}) */ const rgb2hsl = (...args) => { args = unpack(args, 'rgb'); let [r,g,b] = args; const min_ = min(r, g, b); const max_ = max(r, g, b); const delta = max_ - min_; let h,s,v; v = max_ / 255.0; if (max_ === 0) { h = Number.NaN; s = 0; } else { s = delta / max_; if (r === max_) h = (g - b) / delta; if (g === max_) h = 2+(b - r) / delta; if (b === max_) h = 4+(r - g) / delta; h *= 60; if (h < 0) h += 360; } return [h, s, v] } module.exports = rgb2hsl;