Provides CIELAB, CIELUV, CIELCh, CIEXYZ, CIEYxy spaces.
With node previously installed:
npm install @zokugun/lang.color.cie
Use it with JavaScript
:
require('kaoscript/register');
const { Color, Space } = require('@zokugun/lang.color.cie')();
const c = new Color('ciexyz(11.2933, 11.0002, 12.8373)');
Use it with kaoscript
:
import '@zokugun/lang.color.cie'
const c = new Color('ciexyz(11.2933, 11.0002, 12.8373)')
A color is defined in a color space. If you try to access it into another space, the color will be automatically converted into the new space.
luma()
: Numberluma(Number)
: Colorx()
: Numberx(Number)
: Colorz()
: Numberz(Number)
: Colorilluminant()
: String or Arrayilluminant(String|Array, String:method)
: Colorobserver()
: Numberobserver(Number, String:method)
: Color
luma()
: Numberluma(Number)
: Colorx()
: Numberx(Number)
: Colory()
: Numbery(Number)
: Color
luma()
: Numberluma(Number)
: Colorastar()
: Numberastar(Number)
: Colorbstar()
: Numberbstar(Number)
: Color
luma()
: Numberluma(Number)
: Colorustar()
: Numberustar(Number)
: Colorvstar()
: Numbervstar(Number)
: Color
luma()
: Numberluma(Number)
: Colorchroma()
: Numberchroma(Number)
: Colorhue()
: Numberhue(Number)
: Color
luma()
: Numberluma(Number)
: Colorchroma()
: Numberchroma(Number)
: Colorhue()
: Numberhue(Number)
: Color
The CIE 1931 2° Standard Observer and the CIE 1964 10° Standard Observer are supported for the standard illuminants.
On a color with non-standard illuminant, changing the observer won't change the coordinates of the color. But changing the illuminant, will always change the coordinates of the color.
SRGB is converted from/to CIEXYZ with the Standard Illuminant D65 and the 2° Standard Observer.
Name | 2° Observer | 10° Observer | Note | ||||
---|---|---|---|---|---|---|---|
X | Y | Z | X | Y | Z | ||
A | 109.85 | 100 | 35.585 | 111.144 | 100 | 35.2 | Incandescent / Tungsten |
B | 99.072 | 100 | 85.223 | 99.1778 | 100 | 35.2 | Direct sunlight at noon (Deprecated) |
C | 98.074 | 100 | 118.232 | 97.285 | 100 | 116.145 | Average / North sky Daylight (Deprecated) |
D50 | 96.422 | 100 | 82.521 | 96.72 | 100 | 81.427 | Horizon Light |
D55 | 95.682 | 100 | 92.149 | 95.799 | 100 | 90.923 | Mid-morning / Mid-afternoon Daylight |
D65 | 95.047 | 100 | 108.883 | 94.811 | 100 | 107.304 | Noon Daylight |
D75 | 94.972 | 100 | 122.638 | 94.416 | 100 | 120.641 | North sky Daylight |
E | 100 | 100 | 100 | 100 | 100 | 100 | Equal energy |
F1 | 94.8788 | 100 | 108.1515 | 94.7913 | 100 | 103.1914 | Daylight Fluorescent |
F2 | 99.186 | 100 | 67.393 | 103.279 | 100 | 69.027 | Cool White Fluorescent |
F3 | 103.7535 | 100 | 49.8605 | 108.9683 | 100 | 51.9648 | White Fluorescent |
F4 | 109.1473 | 100 | 38.8133 | 114.9614 | 100 | 40.9633 | Warm White Fluorescent |
F5 | 90.872 | 100 | 98.7229 | 93.3686 | 100 | 98.6363 | Daylight Fluorescent |
F6 | 97.3091 | 100 | 60.1905 | 102.1481 | 100 | 62.0736 | Lite White Fluorescent |
F7 | 95.041 | 100 | 108.747 | 95.792 | 100 | 107.686 | D65 simulator, Daylight simulator |
F8 | 96.4125 | 100 | 82.3331 | 97.1146 | 100 | 81.1347 | D50 simulator, Sylvania F40 Design 50 |
F9 | 100.3648 | 100 | 67.8684 | 102.1163 | 100 | 67.8256 | Cool White Deluxe Fluorescent |
F10 | 96.1735 | 100 | 81.7123 | 99.0012 | 100 | 83.134 | Philips TL85, Ultralume 50 |
F11 | 100.962 | 100 | 64.350 | 103.863 | 100 | 65.607 | Philips TL84, Ultralume 40 |
F12 | 108.0463 | 100 | 39.2275 | 111.4284 | 100 | 40.353 | Philips TL83, Ultralume 30 |
const c = new Color('ciexyz(11.2933, 11.0002, 12.8373, D65)')
expect(c.format('cielch(uv)')).to.equal('cielch(uv)(39.5808, 7.4685, 329.1097, D65, 2)')
ciexyz(x, luma|Y, z, illuminant?, observer?)
luma: from 0 to 100, up to 4 decimal places
x: from 0 to 127, up to 4 decimal places
z: from 0 to 127, up to 4 decimal places
ciexyz(11.2933, 11.0002, 12.8373)
ciexyz(11.2933, 11.0002, 12.8373, D65, 2)
ciexyza(x, luma|Y, z, alpha, illuminant?, observer?)
ciexyza(11.2933, 11.0002, 12.8373, 0.7)
ciexyza(11.2933, 11.0002, 12.8373, 0.7, D65, 2)
cieyxy(luma|Y, x, y, illuminant?, observer?)
luma: from 0 to 100, up to 4 decimal places
x: from 0 to 100, up to 4 decimal places
y: from 0 to 100, up to 4 decimal places
cieyxy(11.0002, 32.1464, 31.3121)
cieyxy(11.0002, 32.1464, 31.3121, D65, 2)
cieyxya(luma|Y, x, y, alpha, illuminant?, observer?)
cieyxya(11.0002, 32.1464, 31.3121, 0.7)
cieyxya(11.0002, 32.1464, 31.3121, 0.7, D65, 2)
cielab(luma, a, b, illuminant?, observer?)
luma: from 0 to 100, up to 4 decimal places
a: from -128 to 127, up to 4 decimal places
y: from -128 to 127, up to 4 decimal places
cielab(39.5808, 6.2364, -2.2407)
cielab(39.5808, 6.2364, -2.2407, D65, 2)
cielaba(luma, a, b, alpah, illuminant?, observer?)
cielaba(39.5808, 6.2364, -2.2407, 0.7)
cielaba(39.5808, 6.2364, -2.2407, 0.7, D65, 2)
cieluv(luma, u, v, illuminant?, observer?)
luma: from 0 to 100, up to 4 decimal places
u: from -128 to 127, up to 4 decimal places
v: from -128 to 127, up to 4 decimal places
cieluv(39.5808, 6.4091, -3.8343)
cieluv(39.5808, 6.4091, -3.8343, D65, 2)
cieluva(luma, u, v, alpha, illuminant?, observer?)
cieluv(39.5808, 6.4091, -3.8343, 0.7)
cieluv(39.5808, 6.4091, -3.8343, 0.7, D65, 2)
cielch(ab)(luma, chroma, hue, illuminant?, observer?)
luma: from 0 to 100, up to 4 decimal places
chroma: from 0 to 100, up to 4 decimal places
hue: from 0 to 359.9999, up to 4 decimal places
cielch(ab)(39.5808, 6.6267, 340.237)
cielch(ab)(39.5808, 6.6267, 340.237, D65, 2)
cielcha(ab)(luma, chroma, hue, alpha, illuminant?, observer?)
cielcha(ab)(39.5808, 6.6267, 340.237, 0.7)
cielcha(ab)(39.5808, 6.6267, 340.237, 0.7, D65, 2)
cielch(uv)(luma, chroma, hue, illuminant?, observer?)
luma: from 0 to 100, up to 4 decimal places
chroma: from 0 to 100, up to 4 decimal places
hue: from 0 to 359.9999, up to 4 decimal places
cielch(uv)(39.5808, 7.4685, 329.1097)
cielch(uv)(39.5808, 7.4685, 329.1097, D65, 2)
cielcha(uv)(luma, chroma, hue, alpha, illuminant?, observer?)
cielcha(uv)(39.5808, 7.4685, 329.1097, 0.7)
cielcha(uv)(39.5808, 7.4685, 329.1097, 0.7, D65, 2)
MIT © Baptiste Augrain