Files
PackControl/node_modules/color-space/labh.js
2026-02-27 22:46:14 +01:00

47 lines
889 B
JavaScript

/**
* Hunter-lab space.
*
* @module color-space/labh
*/
import xyz from './xyz.js';
var labh = {
name: 'labh',
//mins/maxes are taken from colormine
//FIXME: check whether mins/maxes correct
min: [0, -128, -128],
max: [100, 128, 128],
channel: ['lightness', 'a', 'b'],
alias: ['LABh', 'hunter-lab', 'hlab'],
//maths are taken from EasyRGB
xyz: function (lab) {
var l = lab[0], a = lab[1], b = lab[2];
var _y = l / 10;
var _x = a / 17.5 * l / 10;
var _z = b / 7 * l / 10;
var y = _y * _y;
var x = (_x + y) / 1.02;
var z = -(_z - y) / 0.847;
return [x, y, z];
}
};
export default (labh);
//extend xyz
xyz.labh = function (xyz) {
var x = xyz[0], y = xyz[1], z = xyz[2];
var _y12 = Math.sqrt(y);
var l = 10 * _y12;
var a = y === 0 ? 0 : 17.5 * (((1.02 * x) - y) / _y12);
var b = y === 0 ? 0 : 7 * ((y - (0.847 * z)) / _y12);
return [l, a, b];
};