notes/node_modules/onecolor/lib/LAB.js

34 lines
966 B
JavaScript

module.exports = function LAB(color) {
color.use(require('./XYZ.js'));
color.installColorSpace('LAB', ['l', 'a', 'b', 'alpha'], {
fromRgb: function () {
return this.xyz().lab();
},
rgb: function () {
return this.xyz().rgb();
},
xyz: function () {
// http://www.easyrgb.com/index.php?X=MATH&H=08#text8
var convert = function (channel) {
var pow = Math.pow(channel, 3);
return pow > 0.008856 ?
pow :
(channel - 16 / 116) / 7.87;
},
y = (this._l + 16) / 116,
x = this._a / 500 + y,
z = y - this._b / 200;
return new color.XYZ(
convert(x) * 95.047,
convert(y) * 100.000,
convert(z) * 108.883,
this._alpha
);
}
});
};