Struct Chromaticity

Source
pub struct Chromaticity {
    pub x: f32,
    pub y: f32,
}
Expand description

CIE xy chromaticity, specifying a color in the XYZ color space, but not its luminosity.

An absolute color can be specified by adding a luminosity coordinate Y as in xyY. An XYZ color can be calculated from xyY as follows.

X = Y/y * x
Y = Y
Z = Y/y * (1 - x - y)

Fields§

§x: f32

The x-coordinate of the CIE xy chromaticity.

§y: f32

The y-coordinate of the CIE xy chromaticity.

Implementations§

Source§

impl Chromaticity

Source

pub const D65: Self

The CIE D65 white point under the standard 2° observer.

This is a common white point for color spaces targeting monitors.

The white point’s chromaticities are truncated to four digits here, as specified by the CSS Color 4 specification, and following most color spaces using this white point.

Source

pub const D50: Self

The CIE D50 white point under the standard 2° observer.

The white point’s chromaticities are truncated to four digits here, as specified by the CSS Color 4 specification, and following most color spaces using this white point.

Source

pub const ACES: Self

The ACES white point.

This is the reference white of ACEScg and ACES2065-1. The white point is near the D60 white point under the standard 2° observer.

Source

const SRGB_TO_BRADFORD: [[f32; 3]; 3]

XYZ_to_Bradford * lin_sRGB_to_XYZ

Source

const BRADFORD_TO_SRGB: [[f32; 3]; 3]

XYZ_to_lin_sRGB * Bradford_to_XYZ

Source

const XYZ_TO_BRADFORD: [[f32; 3]; 3]

Source

pub(crate) const fn to_xyz(self) -> [f32; 3]

Convert the xy chromaticities to XYZ, assuming xyY with Y=1.

Source

pub(crate) const fn linear_srgb_chromatic_adaptation_matrix( self, to: Self, ) -> [[f32; 3]; 3]

Calculate the 3x3 linear Bradford chromatic adaptation matrix from linear sRGB space.

This calculates the matrix going from a reference white of self to a reference white of to.

Trait Implementations§

Source§

impl Clone for Chromaticity

Source§

fn clone(&self) -> Chromaticity

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Chromaticity

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for Chromaticity

Source§

fn eq(&self, other: &Chromaticity) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Chromaticity

Source§

impl StructuralPartialEq for Chromaticity

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.