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.21, 0.21] |
bz | [-0.21, 0.21] |
* 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.
Figure 1. The sRGB gamut represented within the Jzazbz color space.
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 in addition to allowing the color()
function format as well using the custom name --jzazbz
.
jzazbz(jz az bz / a) // Jzazbz function
color(--jzazbz jz az bz / a) // Color function
The string representation of the color object will always default to the color(--jzazbz jz az bz / a)
form, but the default string output will be the 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()
'jzazbz(0.16937 0.0312 0.12308)'
>>> Color("jzazbz", [0.2096, -0.02864, 0.13479]).to_string(percent=True)
'jzazbz(20.96% -13.638% 64.186%)'
>>> Color("jzazbz", [0.09203, -0.07454, 0.07996]).to_string(color=True)
'color(--jzazbz 0.09203 -0.07454 0.07996)'
Registering
from coloraide import Color as Base
from coloraide.spaces.jzazbz.css import Jzazbz
class Color(Base): ...
Color.register(Jzazbz())