@macrostrat/column-components
Version:
React rendering primitives for stratigraphic columns
33 lines (32 loc) • 1.07 kB
JavaScript
import "../../utils/type.js";
import unpack from "../../utils/unpack.js";
import multiplyMatrices from "../../utils/multiply-matrices.js";
import { xyz2rgb } from "../lab/lab2rgb.js";
const oklab2rgb = (...args) => {
args = unpack(args, "lab");
const [L, a, b, ...rest] = args;
const [X, Y, Z] = OKLab_to_XYZ([L, a, b]);
const [r, g, b_] = xyz2rgb(X, Y, Z);
return [r, g, b_, ...rest.length > 0 && rest[0] < 1 ? [rest[0]] : []];
};
function OKLab_to_XYZ(OKLab) {
var LMStoXYZ = [
[1.2268798758459243, -0.5578149944602171, 0.2813910456659647],
[-0.0405757452148008, 1.112286803280317, -0.0717110580655164],
[-0.0763729366746601, -0.4214933324022432, 1.5869240198367816]
];
var OKLabtoLMS = [
[1, 0.3963377773761749, 0.2158037573099136],
[1, -0.1055613458156586, -0.0638541728258133],
[1, -0.0894841775298119, -1.2914855480194092]
];
var LMSnl = multiplyMatrices(OKLabtoLMS, OKLab);
return multiplyMatrices(
LMStoXYZ,
LMSnl.map((c) => c ** 3)
);
}
export {
oklab2rgb as default
};
//# sourceMappingURL=oklab2rgb.js.map