pub struct AdobeRgb;Expand description
The Adobe RGB (1998) (a.k.a. opRGB) color space and standard.
This color space was designed to encompass most colors achievable by CMYK printers using RGB primaries. It has a wider color gamut than sRGB, primarily in cyan-green hues.
The Adobe RGB standard uses a gamma 2.2 transfer function.
§As transfer function
AdobeRgb 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
u8tof32orf64, while converting to linear space. This uses lookup tables with precomputed values. - When converting from
f32orf64tou8, while converting from linear space. This uses a fast algorithm that guarantees a maximum error in the result of less than 0.6 in line with this DirectX spec.
Implementations§
Source§impl AdobeRgb
impl AdobeRgb
Sourcepub fn get_u8_to_f32_lut() -> IntoLinearLut<u8, f32, AdobeRgb, &'static ArrayTable<256>>
pub fn get_u8_to_f32_lut() -> IntoLinearLut<u8, f32, AdobeRgb, &'static ArrayTable<256>>
Access the pre-generated lookup table for non-linear u8 to linear f32 conversion.
Sourcepub fn get_u8_to_f64_lut() -> IntoLinearLut<u8, f64, AdobeRgb, &'static ArrayTable<256>>
pub fn get_u8_to_f64_lut() -> IntoLinearLut<u8, f64, AdobeRgb, &'static ArrayTable<256>>
Access the pre-generated lookup table for non-linear u8 to linear f64 conversion.
Sourcepub fn get_f32_to_u8_lut() -> FromLinearLut<f32, u8, AdobeRgb, &'static SliceTable>
pub fn get_f32_to_u8_lut() -> FromLinearLut<f32, u8, AdobeRgb, &'static SliceTable>
Access the pre-generated lookup table for linear f32 to non-linear u8 conversion.
Trait Implementations§
Source§impl<T> FromLinear<T, T> for AdobeRgb
impl<T> FromLinear<T, T> for AdobeRgb
Source§fn from_linear(linear: T) -> T
fn from_linear(linear: T) -> T
linear from linear space.Source§impl FromLinear<f32, u8> for AdobeRgb
impl FromLinear<f32, u8> for AdobeRgb
Source§fn from_linear(linear: f32) -> u8
fn from_linear(linear: f32) -> u8
linear from linear space.Source§impl FromLinear<f64, u8> for AdobeRgb
impl FromLinear<f64, u8> for AdobeRgb
Source§fn from_linear(linear: f64) -> u8
fn from_linear(linear: f64) -> u8
linear from linear space.Source§impl GetLutBuilder for AdobeRgb
impl GetLutBuilder for AdobeRgb
Source§fn get_lut_builder() -> GammaLutBuilder
fn get_lut_builder() -> GammaLutBuilder
Source§impl<T> IntoLinear<T, T> for AdobeRgb
impl<T> IntoLinear<T, T> for AdobeRgb
Source§fn into_linear(encoded: T) -> T
fn into_linear(encoded: T) -> T
encoded into linear space.Source§impl IntoLinear<f32, u8> for AdobeRgb
impl IntoLinear<f32, u8> for AdobeRgb
Source§fn into_linear(encoded: u8) -> f32
fn into_linear(encoded: u8) -> f32
encoded into linear space.Source§impl IntoLinear<f64, u8> for AdobeRgb
impl IntoLinear<f64, u8> for AdobeRgb
Source§fn into_linear(encoded: u8) -> f64
fn into_linear(encoded: u8) -> f64
encoded into linear space.Source§impl LumaStandard for AdobeRgb
impl LumaStandard for AdobeRgb
Source§type WhitePoint = D65
type WhitePoint = D65
Source§type TransferFn = AdobeRgb
type TransferFn = AdobeRgb
Source§impl RgbSpace for AdobeRgb
impl RgbSpace for AdobeRgb
Source§impl RgbStandard for AdobeRgb
impl RgbStandard for AdobeRgb
impl Copy for AdobeRgb
impl Eq for AdobeRgb
impl StructuralPartialEq for AdobeRgb
Auto Trait Implementations§
impl Freeze for AdobeRgb
impl RefUnwindSafe for AdobeRgb
impl Send for AdobeRgb
impl Sync for AdobeRgb
impl Unpin for AdobeRgb
impl UnsafeUnpin for AdobeRgb
impl UnwindSafe for AdobeRgb
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>,
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>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
replaced by palette::chromatic_adaptation::AdaptIntoUnclamped
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
replaced by palette::chromatic_adaptation::AdaptIntoUnclamped
Source§impl<T, C> AdaptIntoUnclamped<T> for Cwhere
T: AdaptFromUnclamped<C>,
impl<T, C> AdaptIntoUnclamped<T> for Cwhere
T: AdaptFromUnclamped<C>,
Source§type Scalar = <T as AdaptFromUnclamped<C>>::Scalar
type Scalar = <T as AdaptFromUnclamped<C>>::Scalar
Source§fn adapt_into_unclamped_with<M>(self) -> Twhere
M: LmsToXyz<<C as AdaptIntoUnclamped<T>>::Scalar> + XyzToLms<<C as AdaptIntoUnclamped<T>>::Scalar>,
fn adapt_into_unclamped_with<M>(self) -> Twhere
M: LmsToXyz<<C as AdaptIntoUnclamped<T>>::Scalar> + XyzToLms<<C as AdaptIntoUnclamped<T>>::Scalar>,
§impl<T> AnyEq for T
impl<T> AnyEq for T
§impl<T, Res> Apply<Res> for Twhere
T: ?Sized,
impl<T, Res> Apply<Res> for Twhere
T: ?Sized,
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other into Self, while performing the appropriate scaling,
rounding and clamping.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T.§impl<State, Message> IntoBoot<State, Message> for State
impl<State, Message> IntoBoot<State, Message> for State
§fn into_boot(self) -> (State, Task<Message>)
fn into_boot(self) -> (State, Task<Message>)
Application.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Source§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read more