UNPKG

@chayns/colors

Version:

JavaScript utility functions for the calculation of colors for chayns

53 lines (45 loc) 832 B
import { isNumber, isRgb1 } from '../../utils/is'; export default function rgb1ToHsv(rgb) { if (!isRgb1(rgb)) { return null; } var r = rgb.r, g = rgb.g, b = rgb.b; var max = Math.max(r, g, b); var min = Math.min(r, g, b); var h = 0; if (max === min) { h = 0; } else if (max === r) { h = 60 * ((g - b) / (max - min)); } else if (max === g) { h = 60 * (2 + (b - r) / (max - min)); } else if (max === b) { h = 60 * (4 + (r - g) / (max - min)); } if (h < 0) { h += 360; } var s; if (max === 0) { s = 0; } else { s = (max - min) / max; } var v = max; if ('a' in rgb && isNumber(rgb.a)) { return { h: h, s: s, v: v, a: rgb.a }; } return { h: h, s: s, v: v }; } //# sourceMappingURL=rgb1ToHsv.js.map