lab2xyz.ts
733 Bytes
/**
* @preserve
* Copyright 2015-2016 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* lab2xyz.ts - part of Image Quantization Library
*/
const refX : number = 0.95047, //ref_X = 95.047 Observer= 2°, Illuminant = D65
refY : number = 1.00000, //ref_Y = 100.000
refZ : number = 1.08883; //ref_Z = 108.883
function pivot(n : number) {
return n > 0.206893034 ? Math.pow(n, 3) : ( n - 16 / 116 ) / 7.787
}
export function lab2xyz(L : number, a : number, b : number) : {x : number; y : number; z : number} {
const y = ( L + 16 ) / 116,
x = a / 500 + y,
z = y - b / 200;
return {
x : refX * pivot(x),
y : refY * pivot(y),
z : refZ * pivot(z)
}
}