UNPKG

allc

Version:

A small typescript package for color conversion.

42 lines (41 loc) 1.6 kB
import { D_65_XN, D_65_YN, D_65_ZN } from "../../internal"; /** * Helper function for CIE 1931 XYZ to CIELAB conversion. * * @see https://en.wikipedia.org/wiki/CIELAB_color_space#From_CIE_XYZ_to_CIELAB */ const f = (t) => t > 216 / 24389 ? Math.cbrt(t) : 841 / 108 * t + 4 / 29; /** * Calculates the lightness component of CIELAB from CIE 1931 XYZ. * The X and Z components are omitted because they are unnecessary for the conversion. * * @param y The Y component of CIE 1931 XYZ. * * @returns The lightness component of CIELAB. * @see https://en.wikipedia.org/wiki/CIELAB_color_space#From_CIE_XYZ_to_CIELAB */ export const toCIELABLFromCIE1931XYZ = (y) => 116 * f(y / D_65_YN) - 16; /** * Calculates the a component of CIELAB from CIE 1931 XYZ. * The Z component is omitted because it is unnecessary for the conversion. * * @param x The X component of CIE 1931 XYZ. * @param y The Y component of CIE 1931 XYZ. * * @returns The a component of CIELAB. * @see https://en.wikipedia.org/wiki/CIELAB_color_space#From_CIE_XYZ_to_CIELAB */ export const toCIELABAFromCIE1931XYZ = (x, y) => 500 * (f(x / D_65_XN) - f(y / D_65_YN)); /** * Calculates the b component of CIELAB from CIE 1931 XYZ. * The X component is omitted because it is unnecessary for the conversion. * * @param y The Y component of CIE 1931 XYZ. * @param z The Z component of CIE 1931 XYZ. * * @returns The b component of CIELAB. * @see https://en.wikipedia.org/wiki/CIELAB_color_space#From_CIE_XYZ_to_CIELAB */ export const toCIELABBFromCIE1931XYZ = (y, z) => 200 * (f(y / D_65_YN) - f(z / D_65_ZN));