/* Convert between Lab and XYZ
|
/* ========================================================================== */
|
|
export function lab2lch(labL, labA, labB) {
|
const [ lchC, lchH ] = [
|
Math.sqrt(Math.pow(labA, 2) + Math.pow(labB, 2)), // convert to chroma
|
Math.atan2(labB, labA) * 180 / Math.PI // convert to hue, in degrees
|
];
|
|
return [ labL, lchC, lchH ];
|
}
|
|
export function lch2lab(lchL, lchC, lchH) {
|
// convert to Lab a and b from the polar form
|
const [ labA, labB ] = [
|
lchC * Math.cos(lchH * Math.PI / 180),
|
lchC * Math.sin(lchH * Math.PI / 180)
|
];
|
|
return [ lchL, labA, labB ];
|
}
|
|
/*
|
|
References
|
----------
|
|
- https://www.w3.org/TR/css-color-4/#lch-to-lab
|
- https://www.w3.org/TR/css-color-4/#color-conversion-code
|
|
/* ========================================================================== */
|