Struct palette::Xyz [−][src]
#[repr(C)]pub struct Xyz<Wp = D65, T = f32> where
T: FloatComponent,
Wp: WhitePoint, { pub x: T, pub y: T, pub z: T, pub white_point: PhantomData<Wp>, }
Expand description
The CIE 1931 XYZ color space.
XYZ links the perceived colors to their wavelengths and simply makes it possible to describe the way we see colors as numbers. It’s often used when converting from one color space to an other, and requires a standard illuminant and a standard observer to be defined.
Conversions and operations on this color space depend on the defined white point
Fields
x: T
X is the scale of what can be seen as a response curve for the cone cells in the human eye. Its range depends on the white point and goes from 0.0 to 0.95047 for the default D65.
y: T
Y is the luminance of the color, where 0.0 is black and 1.0 is white.
z: T
Z is the scale of what can be seen as the blue stimulation. Its range depends on the white point and goes from 0.0 to 1.08883 for the default D65.
white_point: PhantomData<Wp>
The white point associated with the color’s illuminant and observer. D65 for 2 degree observer is used by default.
Implementations
Convert to a (X, Y, Z)
tuple.
Convert from a (X, Y, Z)
tuple.
Trait Implementations
impl<Wp, T> AbsDiffEq<Xyz<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent + AbsDiffEq,
T::Epsilon: Copy + FloatComponent,
Wp: WhitePoint + PartialEq,
impl<Wp, T> AbsDiffEq<Xyz<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent + AbsDiffEq,
T::Epsilon: Copy + FloatComponent,
Wp: WhitePoint + PartialEq,
The default tolerance to use when testing values that are close together. Read more
A test for equality that uses the absolute difference to compute the approximate equality of two numbers. Read more
The inverse of AbsDiffEq::abs_diff_eq
.
Performs the +=
operation. Read more
impl<Wp, T> AddAssign<Xyz<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent + AddAssign,
Wp: WhitePoint,
impl<Wp, T> AddAssign<Xyz<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent + AddAssign,
Wp: WhitePoint,
Performs the +=
operation. Read more
impl<Wp, T, P: ?Sized> AsMut<P> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
P: RawPixel<T>,
impl<Wp, T, P: ?Sized> AsMut<P> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
P: RawPixel<T>,
impl<Wp, T, P: ?Sized> AsRef<P> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
P: RawPixel<T>,
impl<Wp, T, P: ?Sized> AsRef<P> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
P: RawPixel<T>,
type Scalar = T
type Scalar = T
The scalar type for color components.
Perform a binary operation on this and an other color.
Perform a unary operation on this color.
Performs the /=
operation. Read more
impl<Wp, T> DivAssign<Xyz<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent + DivAssign,
Wp: WhitePoint,
impl<Wp, T> DivAssign<Xyz<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent + DivAssign,
Wp: WhitePoint,
Performs the /=
operation. Read more
impl<Wp, T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
_C: IntoColorUnclamped<Self>,
_A: Component,
impl<Wp, T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
_C: IntoColorUnclamped<Self>,
_A: Component,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T, _S> FromColorUnclamped<Hsl<_S, T>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = Wp>,
impl<Wp, T, _S> FromColorUnclamped<Hsl<_S, T>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = Wp>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T> FromColorUnclamped<Hsluv<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
impl<Wp, T> FromColorUnclamped<Hsluv<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T, _S> FromColorUnclamped<Hsv<_S, T>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = Wp>,
impl<Wp, T, _S> FromColorUnclamped<Hsv<_S, T>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = Wp>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T, _S> FromColorUnclamped<Hwb<_S, T>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = Wp>,
impl<Wp, T, _S> FromColorUnclamped<Hwb<_S, T>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = Wp>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T> FromColorUnclamped<Lab<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
impl<Wp, T> FromColorUnclamped<Lab<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T> FromColorUnclamped<Lch<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
impl<Wp, T> FromColorUnclamped<Lch<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T> FromColorUnclamped<Lchuv<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
impl<Wp, T> FromColorUnclamped<Lchuv<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T, S> FromColorUnclamped<Luma<S, T>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
S: LumaStandard<WhitePoint = Wp>,
impl<Wp, T, S> FromColorUnclamped<Luma<S, T>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
S: LumaStandard<WhitePoint = Wp>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T> FromColorUnclamped<Luv<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
impl<Wp, T> FromColorUnclamped<Luv<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
Convert from T. The resulting color might be invalid in its color space. Read more
Convert from T. The resulting color might be invalid in its color space. Read more
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T, S> FromColorUnclamped<Rgb<S, T>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
S: RgbStandard,
S::Space: RgbSpace<WhitePoint = Wp>,
impl<Wp, T, S> FromColorUnclamped<Rgb<S, T>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
S: RgbStandard,
S::Space: RgbSpace<WhitePoint = Wp>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<S, T> FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T> where
T: FloatComponent,
S: RgbStandard,
T: FloatComponent,
T: FloatComponent,
impl<S, T> FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T> where
T: FloatComponent,
S: RgbStandard,
T: FloatComponent,
T: FloatComponent,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<S, T> FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
T: FloatComponent,
T: FloatComponent,
impl<S, T> FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
T: FloatComponent,
T: FloatComponent,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<S, T> FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hwb<S, T> where
T: FloatComponent,
S: RgbStandard,
T: FloatComponent,
T: FloatComponent,
impl<S, T> FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hwb<S, T> where
T: FloatComponent,
S: RgbStandard,
T: FloatComponent,
T: FloatComponent,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<S, T> FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Rgb<S, T> where
S: RgbStandard,
T: FloatComponent,
impl<S, T> FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Rgb<S, T> where
S: RgbStandard,
T: FloatComponent,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<S, T> FromColorUnclamped<Xyz<<S as LumaStandard>::WhitePoint, T>> for Luma<S, T> where
S: LumaStandard,
T: FloatComponent,
impl<S, T> FromColorUnclamped<Xyz<<S as LumaStandard>::WhitePoint, T>> for Luma<S, T> where
S: LumaStandard,
T: FloatComponent,
Convert from T. The resulting color might be invalid in its color space. Read more
Convert from T. The resulting color might be invalid in its color space. Read more
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T> FromColorUnclamped<Xyz<Wp, T>> for Hsluv<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
impl<Wp, T> FromColorUnclamped<Xyz<Wp, T>> for Hsluv<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T> FromColorUnclamped<Xyz<Wp, T>> for Lab<Wp, T> where
Wp: WhitePoint,
T: FloatComponent,
impl<Wp, T> FromColorUnclamped<Xyz<Wp, T>> for Lab<Wp, T> where
Wp: WhitePoint,
T: FloatComponent,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T> FromColorUnclamped<Xyz<Wp, T>> for Lch<Wp, T> where
Wp: WhitePoint,
T: FloatComponent,
impl<Wp, T> FromColorUnclamped<Xyz<Wp, T>> for Lch<Wp, T> where
Wp: WhitePoint,
T: FloatComponent,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T> FromColorUnclamped<Xyz<Wp, T>> for Lchuv<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
impl<Wp, T> FromColorUnclamped<Xyz<Wp, T>> for Lchuv<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T> FromColorUnclamped<Xyz<Wp, T>> for Luv<Wp, T> where
Wp: WhitePoint,
T: FloatComponent,
impl<Wp, T> FromColorUnclamped<Xyz<Wp, T>> for Luv<Wp, T> where
Wp: WhitePoint,
T: FloatComponent,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T> FromColorUnclamped<Xyz<Wp, T>> for Xyz<Wp, T> where
Wp: WhitePoint,
T: FloatComponent,
impl<Wp, T> FromColorUnclamped<Xyz<Wp, T>> for Xyz<Wp, T> where
Wp: WhitePoint,
T: FloatComponent,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T> FromColorUnclamped<Xyz<Wp, T>> for Yxy<Wp, T> where
Wp: WhitePoint,
T: FloatComponent,
impl<Wp, T> FromColorUnclamped<Xyz<Wp, T>> for Yxy<Wp, T> where
Wp: WhitePoint,
T: FloatComponent,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T> FromColorUnclamped<Yxy<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
impl<Wp, T> FromColorUnclamped<Yxy<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
Convert from T. The resulting color might be invalid in its color space. Read more
Performs the *=
operation. Read more
impl<Wp, T> MulAssign<Xyz<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent + MulAssign,
Wp: WhitePoint,
impl<Wp, T> MulAssign<Xyz<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent + MulAssign,
Wp: WhitePoint,
Performs the *=
operation. Read more
impl<Wp, T> PartialEq<Xyz<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent + PartialEq,
Wp: WhitePoint,
impl<Wp, T> PartialEq<Xyz<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent + PartialEq,
Wp: WhitePoint,
Cast as a mutable reference to raw color components.
Convert into raw color components.
Cast from a reference to raw color components.
Cast from a mutable reference to raw color components.
Cast a slice of raw color components to a slice of colors. Read more
Cast a mutable slice of raw color components to a mutable slice of colors. Read more
Cast a slice of colors to a slice of raw color components. Read more
Cast a mutable slice of colors to a mutable slice of raw color components. Read more
type Scalar = T
type Scalar = T
The type of the contrast ratio.
Calculate the contrast ratio between two colors.
Verify the contrast between two colors satisfies SC 1.4.3. Contrast is at least 4.5:1 (Level AA). Read more
Verify the contrast between two colors satisfies SC 1.4.3 for large text. Contrast is at least 3:1 (Level AA). Read more
Verify the contrast between two colors satisfies SC 1.4.6. Contrast is at least 7:1 (Level AAA). Read more
Verify the contrast between two colors satisfies SC 1.4.6 for large text. Contrast is at least 4.5:1 (Level AAA). Read more
Verify the contrast between two colors satisfies SC 1.4.11 for graphical objects. Contrast is at least 3:1 (Level AA). Read more
impl<Wp, T> RelativeEq<Xyz<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent + RelativeEq,
T::Epsilon: Copy + FloatComponent,
Wp: WhitePoint + PartialEq,
impl<Wp, T> RelativeEq<Xyz<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent + RelativeEq,
T::Epsilon: Copy + FloatComponent,
Wp: WhitePoint + PartialEq,
The default relative tolerance for testing values that are far-apart. Read more
A test for equality that uses a relative comparison if the values are far apart.
The inverse of RelativeEq::relative_eq
.
type Scalar = T
type Scalar = T
The type of the lighten/darken modifier.
Scale the color towards the maximum lightness by factor
, a value
ranging from 0.0
to 1.0
. Read more
Lighten the color by amount
, a value ranging from 0.0
to 1.0
. Read more
Scale the color towards the minimum lightness by factor
, a value
ranging from 0.0
to 1.0
. Read more
Darken the color by amount
, a value ranging from 0.0
to 1.0
. Read more
Performs the -=
operation. Read more
impl<Wp, T> SubAssign<Xyz<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent + SubAssign,
Wp: WhitePoint,
impl<Wp, T> SubAssign<Xyz<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent + SubAssign,
Wp: WhitePoint,
Performs the -=
operation. Read more
impl<Wp, T> UlpsEq<Xyz<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent + UlpsEq,
T::Epsilon: Copy + FloatComponent,
Wp: WhitePoint + PartialEq,
impl<Wp, T> UlpsEq<Xyz<Wp, T>> for Xyz<Wp, T> where
T: FloatComponent + UlpsEq,
T::Epsilon: Copy + FloatComponent,
Wp: WhitePoint + PartialEq,
The default ULPs to tolerate when testing values that are far-apart. Read more
A test for equality that uses units in the last place (ULP) if the values are far apart.
impl<Wp, T, _A> WithAlpha<_A> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
_A: Component,
impl<Wp, T, _A> WithAlpha<_A> for Xyz<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
_A: Component,
Transforms the color into a transparent color with the provided
alpha value. If Self
already has a transparency, it is
overwritten. Read more
Removes the transparency from the color. If Self::Color
has
an internal transparency field, that field will be set to
A::max_intensity()
to make it opaque. Read more
Splits the color into separate color and transparency values. Read more
Transforms the color into a fully opaque color with a transparency
field. If Self
already has a transparency, it is overwritten. Read more
Transforms the color into a fully transparent color. If Self
already has a transparency, it is overwritten. Read more
Auto Trait Implementations
impl<Wp, T> RefUnwindSafe for Xyz<Wp, T> where
T: RefUnwindSafe,
Wp: RefUnwindSafe,
impl<Wp, T> UnwindSafe for Xyz<Wp, T> where
T: UnwindSafe,
Wp: UnwindSafe,
Blanket Implementations
impl<S, D, Swp, Dwp, T> AdaptFrom<S, Swp, Dwp, T> for D where
T: FloatComponent,
S: IntoColorUnclamped<Xyz<Swp, T>>,
Swp: WhitePoint,
Dwp: WhitePoint,
D: FromColorUnclamped<Xyz<Dwp, T>>,
impl<S, D, Swp, Dwp, T> AdaptFrom<S, Swp, Dwp, T> for D where
T: FloatComponent,
S: IntoColorUnclamped<Xyz<Swp, T>>,
Swp: WhitePoint,
Dwp: WhitePoint,
D: FromColorUnclamped<Xyz<Dwp, T>>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S where
T: FloatComponent,
Swp: WhitePoint,
Dwp: WhitePoint,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S where
T: FloatComponent,
Swp: WhitePoint,
Dwp: WhitePoint,
D: AdaptFrom<S, Swp, Dwp, T>,
Mutably borrows from an owned value. Read more
Convert from T with values clamped to the color defined bounds. Read more
Convert into T with values clamped to the color defined bounds Read more
Convert into T. The resulting color might be invalid in its color space Read more
Convert from T, returning ok if the color is inside of its defined
range, otherwise an OutOfBounds
error is returned which contains
the unclamped color. Read more
Convert into T, returning ok if the color is inside of its defined
range, otherwise an OutOfBounds
error is returned which contains
the unclamped color. Read more