color-fns
Version:
Modern JavaScript color utility library.
51 lines • 1.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var parseHsv_1 = require("./parseHsv");
var utils_1 = require("./utils");
function hsvToRgb(hsv) {
var value = typeof hsv === 'string' ? parseHsv_1.parseHsv(hsv) : hsv;
if (!value) {
return null;
}
;
var _a = [value.hue / 360, value.sat / 100, value.val / 100, value.alpha], hue = _a[0], sat = _a[1], val = _a[2], alpha = _a[3];
var _b = [0, 0, 0], red = _b[0], green = _b[1], blue = _b[2];
if (sat === 0) {
red = green = blue = utils_1.normalizeDecNum(val * 255);
}
if (sat !== 0) {
var c_1 = val * sat;
var x_1 = c_1 * (1 - Math.abs((hue * 6) % 2 - 1));
var m = val - c_1;
var testHue = function (test) {
if (test < 1 / 6) {
return [c_1, x_1, 0];
}
if (test < 1 / 3) {
return [x_1, c_1, 0];
}
if (test < 1 / 2) {
return [0, c_1, x_1];
}
if (test < 2 / 3) {
return [0, x_1, c_1];
}
if (test < 5 / 6) {
return [x_1, 0, c_1];
}
return [c_1, 0, x_1];
};
var _c = testHue(hue), r = _c[0], g = _c[1], b = _c[2];
red = utils_1.normalizeDecNum(255 * (r + m));
green = utils_1.normalizeDecNum(255 * (g + m));
blue = utils_1.normalizeDecNum(255 * (b + m));
}
return {
alpha: alpha,
blue: blue,
green: green,
red: red
};
}
exports.hsvToRgb = hsvToRgb;
//# sourceMappingURL=hsvToRgb.js.map