Jzazbz
The Jzazbz color space is registered in Color
by default
Properties
Name: jzazbz
White Point: D65 / 2˚
Coordinates:
Name | Range* |
---|---|
jz | [0, 1] |
az | [-0.5, 0.5] |
bz | [-0.5, 0.5] |
* Space is not bound to the defined range above but represents a practical range for HDR color spaces. CSS uses a range of jz
= [0, 1], az
= [-1, 1] and bz
= [1, 1] for percentage input and output.
Jzazbz is a a color space designed for perceptual uniformity in high dynamic range (HDR) and wide color gamut (WCG) applications. Conceptually it is similar to CIELab, but claims the following improvements:
- Perceptual color difference is predicted by Euclidean distance.
- Perceptually uniform: MacAdam ellipses of just-noticeable-difference (JND) are more circular, and closer to the same sizes.
- Hue linearity: changing saturation or lightness has less shift in hue.
Channel Aliases
Channels | Aliases |
---|---|
jz | lightness , j |
az | a |
bz | b |
Input/Output
Parsed input and string output formats support all valid CSS forms:
color(jzazbz jz az bz / a) // Color function
When manually creating a color via raw data or specifying a color space as a parameter in a function, the color space name is always used:
Color("jzazbz", [0, 0, 0], 1)
The string representation of the color object and the default string output use the color(jzazbz jz az bz / a)
form.
>>> Color("jzazbz", [0.13438, 0.11789, 0.11188])
color(jzazbz 0.13438 0.11789 0.11188 / 1)
>>> Color("jzazbz", [0.16937, 0.0312, 0.12308]).to_string()
'color(jzazbz 0.16937 0.0312 0.12308)'
Registering
from coloraide import Color as Base
from coloraide.spaces.jzazbz import Jzazbz
class Color(Base): ...
Color.register(Jzazbz())