nanoleaf-cove
Version:
Simple NanoLeaf Api for Node.js
50 lines (49 loc) • 1.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.rgb2hsv = void 0;
var rgb2hsv = function (_a) {
var r = _a[0], g = _a[1], b = _a[2];
var rr;
var gg;
var bb;
r = r / 255;
g = g / 255;
b = b / 255;
var h;
var s;
var v = Math.max(r, g, b);
var diff = v - Math.min(r, g, b);
var diffc = function (c) {
return (v - c) / 6 / diff + 1 / 2;
};
if (diff == 0) {
h = s = 0;
}
else {
s = diff / v;
rr = diffc(r);
gg = diffc(g);
bb = diffc(b);
if (r === v) {
h = bb - gg;
}
else if (g === v) {
h = 1 / 3 + rr - bb;
}
else if (b === v) {
h = 2 / 3 + gg - rr;
}
if (h < 0) {
h += 1;
}
else if (h > 1) {
h -= 1;
}
}
return {
h: Math.round(h * 360),
s: Math.round(s * 100),
v: Math.round(v * 100),
};
};
exports.rgb2hsv = rgb2hsv;