UNPKG

chromatism

Version:

A simple set of utility functions for colours.

25 lines (20 loc) 585 B
import getIlluminant from '../helpers/get-illuminant' const epsilon = 0.008856 const kappa = 903.3 const white = getIlluminant('D65') const toR = f => Math.pow(f, 3) > epsilon ? Math.pow(f, 3) : ((116 * f) - 16) / kappa export default { XYZ: value => { const Fy = (value.L + 16) / 116 const Fx = (value.a / 500) + Fy const Fz = Fy - (value.b / 200) const Xr = toR(Fx) const Zr = toR(Fz) const Yr = value.L > (kappa * epsilon) ? Math.pow(Fy, 3) : value.L / kappa return { X: Xr * white.X, Y: Yr * white.Y, Z: Zr * white.Z } } }