12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- "use strict";
- exports.__esModule = true;
- exports["default"] = void 0;
- function rgbToHsl(color) {
- // make sure rgb are contained in a set of [0, 255]
- var red = color.red / 255;
- var green = color.green / 255;
- var blue = color.blue / 255;
- var max = Math.max(red, green, blue);
- var min = Math.min(red, green, blue);
- var lightness = (max + min) / 2;
- if (max === min) {
- // achromatic
- if (color.alpha !== undefined) {
- return {
- hue: 0,
- saturation: 0,
- lightness: lightness,
- alpha: color.alpha
- };
- } else {
- return {
- hue: 0,
- saturation: 0,
- lightness: lightness
- };
- }
- }
- var hue;
- var delta = max - min;
- var saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);
- switch (max) {
- case red:
- hue = (green - blue) / delta + (green < blue ? 6 : 0);
- break;
- case green:
- hue = (blue - red) / delta + 2;
- break;
- default:
- // blue case
- hue = (red - green) / delta + 4;
- break;
- }
- hue *= 60;
- if (color.alpha !== undefined) {
- return {
- hue: hue,
- saturation: saturation,
- lightness: lightness,
- alpha: color.alpha
- };
- }
- return {
- hue: hue,
- saturation: saturation,
- lightness: lightness
- };
- }
- var _default = exports["default"] = rgbToHsl;
- module.exports = exports.default;
|