Class ViewingConditions
- java.lang.Object
-
- org.pushingpixels.ephemeral.chroma.hct.ViewingConditions
-
public final class ViewingConditions extends java.lang.Object
In traditional color spaces, a color can be identified solely by the observer's measurement of the color. Color appearance models such as CAM16 also use information about the environment where the color was observed, known as the viewing conditions.For example, white under the traditional assumption of a midday sun white point is accurately measured as a slightly chromatic blue by CAM16. (roughly, hue 203, chroma 3, lightness 100)
This class caches intermediate values of the CAM16 conversion process that depend only on viewing conditions, enabling speed ups.
-
-
Field Summary
Fields Modifier and Type Field Description private double
aw
private double
c
static ViewingConditions
DEFAULT
sRGB-like viewing conditions.private double
fl
private double
flRoot
private double
n
private double
nbb
private double
nc
private double
ncb
private double[]
rgbD
private double
z
-
Constructor Summary
Constructors Modifier Constructor Description private
ViewingConditions(double n, double aw, double nbb, double ncb, double c, double nc, double[] rgbD, double fl, double flRoot, double z)
Parameters are intermediate values of the CAM16 conversion process.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static ViewingConditions
defaultWithBackgroundLstar(double lstar)
Create sRGB-like viewing conditions with a custom background lstar.double
getAw()
(package private) double
getC()
(package private) double
getFl()
double
getFlRoot()
double
getN()
double
getNbb()
(package private) double
getNc()
(package private) double
getNcb()
double[]
getRgbD()
(package private) double
getZ()
static ViewingConditions
make(double[] whitePoint, double adaptingLuminance, double backgroundLstar, double surround, boolean discountingIlluminant)
Create ViewingConditions from a simple, physically relevant, set of parameters.
-
-
-
Field Detail
-
DEFAULT
public static final ViewingConditions DEFAULT
sRGB-like viewing conditions.
-
aw
private final double aw
-
nbb
private final double nbb
-
ncb
private final double ncb
-
c
private final double c
-
nc
private final double nc
-
n
private final double n
-
rgbD
private final double[] rgbD
-
fl
private final double fl
-
flRoot
private final double flRoot
-
z
private final double z
-
-
Constructor Detail
-
ViewingConditions
private ViewingConditions(double n, double aw, double nbb, double ncb, double c, double nc, double[] rgbD, double fl, double flRoot, double z)
Parameters are intermediate values of the CAM16 conversion process. Their names are shorthand for technical color science terminology, this class would not benefit from documenting them individually. A brief overview is available in the CAM16 specification, and a complete overview requires a color science textbook, such as Fairchild's Color Appearance Models.
-
-
Method Detail
-
getAw
public double getAw()
-
getN
public double getN()
-
getNbb
public double getNbb()
-
getNcb
double getNcb()
-
getC
double getC()
-
getNc
double getNc()
-
getRgbD
public double[] getRgbD()
-
getFl
double getFl()
-
getFlRoot
public double getFlRoot()
-
getZ
double getZ()
-
make
public static ViewingConditions make(double[] whitePoint, double adaptingLuminance, double backgroundLstar, double surround, boolean discountingIlluminant)
Create ViewingConditions from a simple, physically relevant, set of parameters.- Parameters:
whitePoint
- White point, measured in the XYZ color space. default = D65, or sunny day afternoonadaptingLuminance
- The luminance of the adapting field. Informally, how bright it is in the room where the color is viewed. Can be calculated from lux by multiplying lux by 0.0586. default = 11.72, or 200 lux.backgroundLstar
- The lightness of the area surrounding the color. measured by L* in L*a*b*. default = 50.0surround
- A general description of the lighting surrounding the color. 0 is pitch dark, like watching a movie in a theater. 1.0 is a dimly light room, like watching TV at home at night. 2.0 means there is no difference between the lighting on the color and around it. default = 2.0discountingIlluminant
- Whether the eye accounts for the tint of the ambient lighting, such as knowing an apple is still red in green light. default = false, the eye does not perform this process on self-luminous objects like displays.
-
defaultWithBackgroundLstar
public static ViewingConditions defaultWithBackgroundLstar(double lstar)
Create sRGB-like viewing conditions with a custom background lstar.Default viewing conditions have a lstar of 50, midgray.
-
-