chromatic library
A comprehensive color science library for Dart.
Provides color space conversions, perceptual color difference (Delta E), chromatic adaptation, and more.
import 'package:chromatic/chromatic.dart';
final red = SRgbColor(1.0, 0.0, 0.0);
final lab = red.toLab();
print(lab); // Lab(53.23, 80.11, 67.22)
final other = LabColor(50, 30, -20);
print(deltaE00(lab, other)); // perceptual distance
Classes
- AdobeRgbColor
- Adobe RGB (1998) color.
- AppleRgbColor
- Apple RGB color.
- BaseRgbColor
- Base class for RGB color spaces.
- Bt2020Color
- ITU-R BT.2020 color.
- CmyColor
- CMY (Cyan, Magenta, Yellow) color.
- CmykColor
- CMYK (Cyan, Magenta, Yellow, Key/Black) color.
- ColorBase
- Base class for all color types.
- HslColor
- HSL (Hue, Saturation, Lightness) color.
- HsvColor
- HSV (Hue, Saturation, Value) color.
- IptColor
- IPT color space (Image Processing Transform).
- LabColor
- CIE Lab* color.
- LchAbColor
- CIE LCH(ab) color — cylindrical form of Lab.
- LchUvColor
- CIE LCH(uv) color — cylindrical form of Luv.
- LuvColor
- CIE Luv* color.
- RgbColorSpaceDef
- Defines the properties of an RGB color space.
- SRgbColor
- sRGB color (IEC 61966-2-1).
- XyyColor
- CIE 1931 xyY chromaticity color.
- XyzColor
- CIE 1931 XYZ color.
Constants
-
adaptationMatrices
→ const Map<
String, List< double> > - 3x3 adaptation matrices as flat row-major lists.
- adobeRgbDef → const RgbColorSpaceDef
- Adobe RGB (1998).
- appleRgbDef → const RgbColorSpaceDef
- Apple RGB.
- bt2020Def → const RgbColorSpaceDef
- ITU-R BT.2020.
- cieE → const double
- CIE epsilon: 216/24389 ≈ 0.008856
- cieK → const double
- CIE kappa: 24389/27 ≈ 903.3
-
illuminants
→ const Map<
String, Map< String, List< >double> > - Standard illuminant white-point XYZ values.
- sRgbDef → const RgbColorSpaceDef
- sRGB color space (IEC 61966-2-1).
Functions
-
adaptXyzColor(
XyzColor color, {required String targetIlluminant, String method = 'bradford'}) → XyzColor - Adapts an XyzColor to a new illuminant, returning a new XyzColor.
-
chromaticAdapt(
double x, double y, double z, {required String sourceIlluminant, required String targetIlluminant, String observer = '2', String method = 'bradford'}) → (double, double, double) - Applies chromatic adaptation to XYZ values.
-
cmykToCmy(
CmykColor cmyk) → CmyColor - Converts CmykColor to CmyColor.
-
cmyToCmyk(
CmyColor cmy) → CmykColor - Converts CmyColor to CmykColor.
-
cmyToRgb(
CmyColor cmy) → SRgbColor - Converts CmyColor to SRgbColor.
-
deltaE00(
LabColor c1, LabColor c2, {double kL = 1, double kC = 1, double kH = 1}) → double - CIEDE2000 color difference — the gold standard.
-
deltaE76(
LabColor c1, LabColor c2) → double - CIE76 color difference — simple Euclidean distance in Lab.
-
deltaE94(
LabColor c1, LabColor c2, {double kL = 1, double kC = 1, double kH = 1, double k1 = 0.045, double k2 = 0.015}) → double - CIE94 color difference.
-
deltaECmc(
LabColor c1, LabColor c2, {double pl = 2, double pc = 1}) → double - CMC l:c color difference.
-
hslToRgb(
HslColor hsl) → SRgbColor - Converts HslColor to SRgbColor.
-
hsvToRgb(
HsvColor hsv) → SRgbColor - Converts HsvColor to SRgbColor.
-
iptToXyz(
IptColor ipt) → XyzColor - Converts IptColor to XyzColor.
-
labToLchAb(
LabColor lab) → LchAbColor - Converts LabColor to LchAbColor.
-
labToSRgb(
LabColor lab) → SRgbColor - Converts LabColor directly to SRgbColor.
-
labToXyz(
LabColor lab) → XyzColor - Converts LabColor to XyzColor.
-
lchAbToLab(
LchAbColor lch) → LabColor - Converts LchAbColor to LabColor.
-
lchAbToSRgb(
LchAbColor lch) → SRgbColor - Converts LchAbColor directly to SRgbColor.
-
lchUvToLuv(
LchUvColor lch) → LuvColor - Converts LchUvColor to LuvColor.
-
luvToLchUv(
LuvColor luv) → LchUvColor - Converts LuvColor to LchUvColor.
-
luvToXyz(
LuvColor luv) → XyzColor - Converts LuvColor to XyzColor.
-
rgbToCmy(
BaseRgbColor rgb) → CmyColor - Converts BaseRgbColor to CmyColor.
-
rgbToHsl(
BaseRgbColor rgb) → HslColor - Converts SRgbColor to HslColor.
-
rgbToHsv(
BaseRgbColor rgb) → HsvColor - Converts SRgbColor to HsvColor.
-
rgbToXyz(
BaseRgbColor rgb, {String? targetIlluminant, String observer = '2'}) → XyzColor - Converts an BaseRgbColor to XyzColor.
-
sRgbToHsl(
SRgbColor rgb) → HslColor - Converts SRgbColor directly to HslColor.
-
sRgbToHsv(
SRgbColor rgb) → HsvColor - Converts SRgbColor directly to HsvColor.
-
sRgbToLab(
SRgbColor rgb, {String? illuminant, String observer = '2'}) → LabColor - Converts SRgbColor directly to LabColor.
-
sRgbToLchAb(
SRgbColor rgb, {String? illuminant, String observer = '2'}) → LchAbColor - Converts SRgbColor directly to LchAbColor.
-
xyyToXyz(
XyyColor xyy) → XyzColor - Converts XyyColor to XyzColor.
-
xyzToAdobeRgb(
XyzColor xyz) → AdobeRgbColor - Converts XyzColor to AdobeRgbColor.
-
xyzToAppleRgb(
XyzColor xyz) → AppleRgbColor - Converts XyzColor to AppleRgbColor.
-
xyzToBt2020(
XyzColor xyz) → Bt2020Color - Converts XyzColor to Bt2020Color.
-
xyzToIpt(
XyzColor xyz) → IptColor - Converts XyzColor to IptColor. Requires D65 illuminant.
-
xyzToLab(
XyzColor xyz) → LabColor - Converts XyzColor to LabColor.
-
xyzToLuv(
XyzColor xyz) → LuvColor - Converts XyzColor to LuvColor.
-
xyzToSRgb(
XyzColor xyz) → SRgbColor - Converts XyzColor to SRgbColor.
-
xyzToXyy(
XyzColor xyz) → XyyColor - Converts XyzColor to XyyColor.