lib-colors
Version:
Simple node.js library for work with colors
29 lines (28 loc) • 1.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.labToCmyk = labToCmyk;
const lab_to_xyz_helper_1 = require("./lab_to_xyz.helper");
function labToCmyk(lab) {
const xyz = (0, lab_to_xyz_helper_1.labToXyz)(lab);
return xyzToCmyk(xyz);
}
function xyzToCmyk(xyz) {
const { x, y, z, alpha } = { ...xyz };
const xNorm = Math.min(1, x / 95.047);
const yNorm = Math.min(1, y / 100.0);
const zNorm = Math.min(1, z / 108.883);
const c = 1 - xNorm;
const m = 1 - yNorm;
const yVal = 1 - zNorm;
const k = Math.min(c, m, yVal);
const cFinal = (c - k) / (1 - k) || 0;
const mFinal = (m - k) / (1 - k) || 0;
const yFinal = (yVal - k) / (1 - k) || 0;
return {
c: Math.round(Math.max(0, Math.min(1, cFinal)) * 100),
m: Math.round(Math.max(0, Math.min(1, mFinal)) * 100),
y: Math.round(Math.max(0, Math.min(1, yFinal)) * 100),
k: Math.round(Math.max(0, Math.min(1, k)) * 100),
a: alpha,
};
}