notes/node_modules/onecolor/lib/CMYK.js

31 lines
1.3 KiB
JavaScript

module.exports = function CMYK(color) {
color.installColorSpace('CMYK', ['cyan', 'magenta', 'yellow', 'black', 'alpha'], {
rgb: function () {
return new color.RGB((1 - this._cyan * (1 - this._black) - this._black),
(1 - this._magenta * (1 - this._black) - this._black),
(1 - this._yellow * (1 - this._black) - this._black),
this._alpha);
},
fromRgb: function () { // Becomes one.color.RGB.prototype.cmyk
// Adapted from http://www.javascripter.net/faq/rgb2cmyk.htm
var red = this._red,
green = this._green,
blue = this._blue,
cyan = 1 - red,
magenta = 1 - green,
yellow = 1 - blue,
black = 1;
if (red || green || blue) {
black = Math.min(cyan, Math.min(magenta, yellow));
cyan = (cyan - black) / (1 - black);
magenta = (magenta - black) / (1 - black);
yellow = (yellow - black) / (1 - black);
} else {
black = 1;
}
return new color.CMYK(cyan, magenta, yellow, black, this._alpha);
}
});
};