Struct palette::encoding::srgb::Srgb

source ·
pub struct Srgb;
Expand description

The sRGB standard, color space, and transfer function.

As transfer function

Srgb will not use any kind of approximation when converting from T to T. This involves calls to powf, which may make it too slow for certain applications.

There are some specialized cases where it has been optimized:

  • When converting from u8 to f32 or f64, while converting to linear space. This uses lookup tables with precomputed values. f32 will use the table provided by fast_srgb8::srgb8_to_f32.
  • When converting from f32 or f64 to u8, while converting from linear space. This uses fast_srgb8::f32_to_srgb8.

Trait Implementations§

source§

impl Clone for Srgb

source§

fn clone(&self) -> Srgb

Returns a copy 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 Srgb

source§

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

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

impl<T> FromLinear<T, T> for Srgbwhere T: Real + Powf + MulSub + Arithmetics + PartialCmp + Clone, T::Mask: LazySelect<T>,

source§

fn from_linear(x: T) -> T

Convert the color component linear from linear space.
source§

impl FromLinear<f32, u8> for Srgb

source§

fn from_linear(linear: f32) -> u8

Convert the color component linear from linear space.
source§

impl FromLinear<f64, u8> for Srgb

source§

fn from_linear(linear: f64) -> u8

Convert the color component linear from linear space.
source§

impl<T> IntoLinear<T, T> for Srgbwhere T: Real + Powf + MulAdd + Arithmetics + PartialCmp + Clone, T::Mask: LazySelect<T>,

source§

fn into_linear(x: T) -> T

Convert the color component encoded into linear space.
source§

impl IntoLinear<f32, u8> for Srgb

source§

fn into_linear(encoded: u8) -> f32

Convert the color component encoded into linear space.
source§

impl IntoLinear<f64, u8> for Srgb

source§

fn into_linear(encoded: u8) -> f64

Convert the color component encoded into linear space.
source§

impl LumaStandard for Srgb

§

type WhitePoint = D65

The white point of the color space.
§

type TransferFn = Srgb

The transfer function for the luminance component.
source§

impl PartialEq<Srgb> for Srgb

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<T: Real> Primaries<T> for Srgb

source§

fn red() -> Yxy<Any, T>

Primary red.
source§

fn green() -> Yxy<Any, T>

Primary green.
source§

fn blue() -> Yxy<Any, T>

Primary blue.
source§

impl RgbSpace for Srgb

§

type Primaries = Srgb

The primaries of the RGB color space.
§

type WhitePoint = D65

The white point of the RGB color space.
source§

fn rgb_to_xyz_matrix() -> Option<Mat3<f64>>

Get a pre-defined matrix for converting an RGB value with this standard into an XYZ value. Read more
source§

fn xyz_to_rgb_matrix() -> Option<Mat3<f64>>

Get a pre-defined matrix for converting an XYZ value into an RGB value with this standard. Read more
source§

impl RgbStandard for Srgb

§

type Space = Srgb

The RGB color space.
§

type TransferFn = Srgb

The transfer function for the color components.
source§

impl Copy for Srgb

source§

impl Eq for Srgb

source§

impl StructuralEq for Srgb

source§

impl StructuralPartialEq for Srgb

Auto Trait Implementations§

§

impl RefUnwindSafe for Srgb

§

impl Send for Srgb

§

impl Sync for Srgb

§

impl Unpin for Srgb

§

impl UnwindSafe for Srgb

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, D: AdaptFrom<S, Swp, Dwp, T>,

source§

fn adapt_into_using<M>(self, method: M) -> Dwhere M: TransformMatrix<T>,

Convert the source color to the destination color using the specified method.
source§

fn adapt_into(self) -> D

Convert the source color to the destination color using the bradford method by default.
source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T, C> ArraysFrom<C> for Twhere C: IntoArrays<T>,

source§

fn arrays_from(colors: C) -> T

Cast a collection of colors into a collection of arrays.
source§

impl<T, C> ArraysInto<C> for Twhere C: FromArrays<T>,

source§

fn arrays_into(self) -> C

Cast this collection of arrays into a collection of colors.
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T, C> ComponentsFrom<C> for Twhere C: IntoComponents<T>,

source§

fn components_from(colors: C) -> T

Cast a collection of colors into a collection of color components.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> FromAngle<T> for T

source§

fn from_angle(angle: T) -> T

Performs a conversion from angle.
source§

impl<T, U> FromStimulus<U> for Twhere U: IntoStimulus<T>,

source§

fn from_stimulus(other: U) -> T

Converts other into Self, while performing the appropriate scaling, rounding and clamping.
source§

impl<T, U> Into<U> for Twhere 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, U> IntoAngle<U> for Twhere U: FromAngle<T>,

source§

fn into_angle(self) -> U

Performs a conversion into T.
source§

impl<T, U> IntoColor<U> for Twhere U: FromColor<T>,

source§

fn into_color(self) -> U

Convert into T with values clamped to the color defined bounds Read more
source§

impl<T, U> IntoColorUnclamped<U> for Twhere U: FromColorUnclamped<T>,

source§

fn into_color_unclamped(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
source§

impl<T> IntoStimulus<T> for T

source§

fn into_stimulus(self) -> T

Converts self into T, while performing the appropriate scaling, rounding and clamping.
source§

impl<T> ToOwned for Twhere T: Clone,

§

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<'a, T, C> TryComponentsInto<C> for Twhere C: TryFromComponents<T>,

§

type Error = <C as TryFromComponents<T>>::Error

The error for when try_into_colors fails to cast.
source§

fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>

Try to cast this collection of color components into a collection of colors. Read more
source§

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

§

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 Twhere U: TryFrom<T>,

§

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.
source§

impl<T, U> TryIntoColor<U> for Twhere U: TryFromColor<T>,

source§

fn try_into_color(self) -> Result<U, OutOfBounds<U>>

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
source§

impl<C, U> UintsFrom<C> for Uwhere C: IntoUints<U>,

source§

fn uints_from(colors: C) -> U

Cast a collection of colors into a collection of unsigned integers.
source§

impl<C, U> UintsInto<C> for Uwhere C: FromUints<U>,

source§

fn uints_into(self) -> C

Cast this collection of unsigned integers into a collection of colors.