[][src]Struct image2::colorspace::Hsv

#[repr(C)]
pub struct Hsv<S = Srgb, T = f32> where
    S: RgbSpace,
    T: Component + Float
{ pub hue: RgbHue<T>, pub saturation: T, pub value: T, pub space: PhantomData<S>, }

Linear HSV color space.

HSV is a cylindrical version of RGB and it's very similar to HSL. The difference is that the value component in HSV determines the brightness of the color, and not the lightness. The difference is that, for example, red (100% R, 0% G, 0% B) and white (100% R, 100% G, 100% B) has the same brightness (or value), but not the same lightness.

Fields

hue: RgbHue<T>

The hue of the color, in degrees. Decides if it's red, blue, purple, etc.

saturation: T

The colorfulness of the color. 0.0 gives gray scale colors and 1.0 will give absolutely clear colors.

value: T

Decides how bright the color will look. 0.0 will be black, and 1.0 will give a bright an clear color that goes towards white when saturation goes towards 0.0.

space: PhantomData<S>

The white point and RGB primaries this color is adapted to. The default is the sRGB standard.

Methods

impl<T> Hsv<Srgb, T> where
    T: Component + Float
[src]

pub fn new<H>(hue: H, saturation: T, value: T) -> Hsv<Srgb, T> where
    H: Into<RgbHue<T>>, 
[src]

HSV for linear sRGB.

impl<S, T> Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

pub fn with_wp<H>(hue: H, saturation: T, value: T) -> Hsv<S, T> where
    H: Into<RgbHue<T>>, 
[src]

Linear HSV.

pub fn into_components(self) -> (RgbHue<T>, T, T)[src]

Convert to a (hue, saturation, value) tuple.

pub fn from_components<H>((H, T, T)) -> Hsv<S, T> where
    H: Into<RgbHue<T>>, 
[src]

Convert from a (hue, saturation, value) tuple.

Trait Implementations

impl<S, T> Default for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> Copy for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> Pixel<T> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

fn as_raw<P>(&self) -> &P where
    P: RawPixel<T> + ?Sized
[src]

Cast as a reference to raw color components.

fn as_raw_mut<P>(&mut self) -> &mut P where
    P: RawPixel<T> + ?Sized
[src]

Cast as a mutable reference to raw color components.

fn into_raw<P>(self) -> P where
    P: RawPixelSized<T>, 
[src]

Convert from raw color components.

fn from_raw<P>(pixel: &P) -> &Self where
    P: RawPixel<T> + ?Sized
[src]

Cast from a reference to raw color components.

fn from_raw_mut<P>(pixel: &mut P) -> &mut Self where
    P: RawPixel<T> + ?Sized
[src]

Cast from a mutable reference to raw color components.

fn from_raw_slice(slice: &[T]) -> &[Self][src]

Cast a slice of raw color components to a slice of colors. Read more

fn from_raw_slice_mut(slice: &mut [T]) -> &mut [Self][src]

Cast a mutable slice of raw color components to a mutable slice of colors. Read more

fn into_raw_slice(slice: &[Self]) -> &[T][src]

Cast a slice of colors to a slice of raw color components. Read more

fn into_raw_slice_mut(slice: &mut [Self]) -> &mut [T][src]

Cast a mutable slice of colors to a mutable slice of raw color components. Read more

impl<S, T> Clone for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl<S, T> PartialEq<Hsv<S, T>> for Hsv<S, T> where
    S: PartialEq<S> + RgbSpace,
    T: PartialEq<T> + Component + Float
[src]

impl<S, T> Add<T> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

type Output = Hsv<S, T>

The resulting type after applying the + operator.

impl<S, T> Add<Hsv<S, T>> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

type Output = Hsv<S, T>

The resulting type after applying the + operator.

impl<S, T> Limited for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T, P> AsMut<P> for Hsv<S, T> where
    P: RawPixel<T> + ?Sized,
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> FromColor<<S as RgbSpace>::WhitePoint, T> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

fn from_yxy(inp: Yxy<Wp, T>) -> Self[src]

Convert from Yxy color space

fn from_lab(inp: Lab<Wp, T>) -> Self[src]

Convert from Lab* color space

fn from_lch(inp: Lch<Wp, T>) -> Self[src]

Convert from LCh° color space

fn from_luma(inp: Luma<Linear<Wp>, T>) -> Self[src]

Convert from Luma

impl<'de, S, T> Deserialize<'de> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float + Deserialize<'de>, 
[src]

impl<S, T> Serialize for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float + Serialize
[src]

impl<S, T> Saturate for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

type Scalar = T

The type of the (de)saturation factor.

fn desaturate(&self, factor: Self::Scalar) -> Self[src]

Decrease the saturation by factor.

impl<S, T> Sub<T> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

type Output = Hsv<S, T>

The resulting type after applying the - operator.

impl<S, T> Sub<Hsv<S, T>> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

type Output = Hsv<S, T>

The resulting type after applying the - operator.

impl<S, T> Shade for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

type Scalar = T

The type of the lighten/darken amount.

fn darken(&self, amount: Self::Scalar) -> Self[src]

Darken the color by amount.

impl<S, Wp, T> IntoColor<Wp, T> for Hsv<S, T> where
    S: RgbSpace<WhitePoint = Wp>,
    T: Component + Float,
    Wp: WhitePoint
[src]

fn into_hwb<S>(self) -> Hwb<S, T> where
    S: RgbSpace<WhitePoint = Wp>, 
[src]

Convert into HWB color space

impl<S, T> Debug for Hsv<S, T> where
    S: Debug + RgbSpace,
    T: Debug + Component + Float
[src]

impl<S, T> Into<(RgbHue<T>, T, T)> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> ApproxEq for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float + ApproxEq,
    <T as ApproxEq>::Epsilon: Copy,
    <T as ApproxEq>::Epsilon: Float
[src]

type Epsilon = <T as ApproxEq>::Epsilon

Used for specifying relative comparisons.

fn relative_ne(
    &self,
    other: &Self,
    epsilon: Self::Epsilon,
    max_relative: Self::Epsilon
) -> bool

The inverse of ApproxEq::relative_eq.

fn ulps_ne(&self, other: &Self, epsilon: Self::Epsilon, max_ulps: u32) -> bool

The inverse of ApproxEq::ulps_eq.

impl<S, T, P> AsRef<P> for Hsv<S, T> where
    P: RawPixel<T> + ?Sized,
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> Mix for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

type Scalar = T

The type of the mixing factor.

impl<Wp, T, _S> From<Hsv<_S, T>> for Lab<Wp, T> where
    T: Component + Float,
    Wp: WhitePoint,
    _S: RgbSpace<WhitePoint = Wp>, 
[src]

impl<S, T> From<Color<S, T>> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, Sp, T> From<Hwb<Sp, T>> for Hsv<S, T> where
    S: RgbSpace,
    Sp: RgbSpace<WhitePoint = <S as RgbSpace>::WhitePoint>,
    T: Component + Float
[src]

impl<S, T> From<Alpha<Hsv<S, T>, T>> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> From<Alpha<Lab<<S as RgbSpace>::WhitePoint, T>, T>> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T, _S> From<Rgb<_S, T>> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float,
    _S: RgbStandard<Space = S>, 
[src]

impl<S, T> From<Hsv<S, T>> for Alpha<Hwb<S, T>, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> From<Lch<<S as RgbSpace>::WhitePoint, T>> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> From<Alpha<Lch<<S as RgbSpace>::WhitePoint, T>, T>> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, Sp, T> From<Hsl<Sp, T>> for Hsv<S, T> where
    S: RgbSpace,
    Sp: RgbSpace<WhitePoint = <S as RgbSpace>::WhitePoint>,
    T: Component + Float
[src]

impl<S, T, _S> From<Alpha<Luma<_S, T>, T>> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float,
    _S: LumaStandard<WhitePoint = <S as RgbSpace>::WhitePoint>, 
[src]

impl<S, T> From<Hsv<S, T>> for Color<S, T> where
    S: RgbSpace,
    T: Float + Component
[src]

impl<S, T, Sp> From<Hsv<Sp, T>> for Hwb<S, T> where
    S: RgbSpace,
    Sp: RgbSpace<WhitePoint = <S as RgbSpace>::WhitePoint>,
    T: Component + Float
[src]

impl<Wp, T, _S> From<Hsv<_S, T>> for Alpha<Lch<Wp, T>, T> where
    T: Component + Float,
    Wp: WhitePoint,
    _S: RgbSpace<WhitePoint = Wp>, 
[src]

impl<S, T, _S> From<Alpha<Rgb<_S, T>, T>> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float,
    _S: RgbStandard<Space = S>, 
[src]

impl<S, T> From<Alpha<Yxy<<S as RgbSpace>::WhitePoint, T>, T>> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> From<Alpha<Xyz<<S as RgbSpace>::WhitePoint, T>, T>> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<Wp, T, _S> From<Hsv<_S, T>> for Alpha<Lab<Wp, T>, T> where
    T: Component + Float,
    Wp: WhitePoint,
    _S: RgbSpace<WhitePoint = Wp>, 
[src]

impl<S, T> From<Hsv<S, T>> for Alpha<Hsl<S, T>, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<Wp, T, _S> From<Hsv<_S, T>> for Alpha<Xyz<Wp, T>, T> where
    T: Component + Float,
    Wp: WhitePoint,
    _S: RgbSpace<WhitePoint = Wp>, 
[src]

impl<S, T> From<Alpha<Color<S, T>, T>> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T, _S> From<Luma<_S, T>> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float,
    _S: LumaStandard<WhitePoint = <S as RgbSpace>::WhitePoint>, 
[src]

impl<S, T> From<Lab<<S as RgbSpace>::WhitePoint, T>> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> From<Yxy<<S as RgbSpace>::WhitePoint, T>> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> From<Alpha<Hsl<S, T>, T>> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<Wp, T, _S> From<Hsv<_S, T>> for Alpha<Yxy<Wp, T>, T> where
    T: Component + Float,
    Wp: WhitePoint,
    _S: RgbSpace<WhitePoint = Wp>, 
[src]

impl<S, T, H> From<(H, T, T)> for Hsv<S, T> where
    H: Into<RgbHue<T>>,
    S: RgbSpace,
    T: Component + Float
[src]

impl<Wp, T, _S> From<Hsv<_S, T>> for Xyz<Wp, T> where
    T: Component + Float,
    Wp: WhitePoint,
    _S: RgbSpace<WhitePoint = Wp>, 
[src]

impl<S, T> From<Xyz<<S as RgbSpace>::WhitePoint, T>> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<Wp, T, _S> From<Hsv<_S, T>> for Lch<Wp, T> where
    T: Component + Float,
    Wp: WhitePoint,
    _S: RgbSpace<WhitePoint = Wp>, 
[src]

impl<S, T, Sp, Wp> From<Hsv<Sp, T>> for Rgb<S, T> where
    S: RgbStandard,
    Sp: RgbSpace<WhitePoint = Wp>,
    T: Component + Float,
    Wp: WhitePoint,
    <S as RgbStandard>::Space: RgbSpace,
    <<S as RgbStandard>::Space as RgbSpace>::WhitePoint == Wp, 
[src]

impl<Wp, T, _S> From<Hsv<_S, T>> for Yxy<Wp, T> where
    T: Component + Float,
    Wp: WhitePoint,
    _S: RgbSpace<WhitePoint = Wp>, 
[src]

impl<S, Sp, T> From<Hsv<Sp, T>> for Hsl<S, T> where
    S: RgbSpace,
    Sp: RgbSpace<WhitePoint = <S as RgbSpace>::WhitePoint>,
    T: Component + Float
[src]

impl<S, T, _S> From<Hsv<_S, T>> for Luma<S, T> where
    S: LumaStandard,
    T: Component + Float,
    _S: RgbSpace<WhitePoint = <S as LumaStandard>::WhitePoint>, 
[src]

impl<S, T, _S> From<Hsv<_S, T>> for Alpha<Luma<S, T>, T> where
    S: LumaStandard,
    T: Component + Float,
    _S: RgbSpace<WhitePoint = <S as LumaStandard>::WhitePoint>, 
[src]

impl<S, T> From<Alpha<Hwb<S, T>, T>> for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> From<Hsv<<S as RgbStandard>::Space, T>> for Alpha<Rgb<S, T>, T> where
    S: RgbStandard,
    T: Component + Float
[src]

impl<S, T> Hue for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> GetHue for Hsv<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

type Hue = RgbHue<T>

The kind of hue unit this color space uses. Read more

Auto Trait Implementations

impl<S, T> Send for Hsv<S, T> where
    S: Send,
    T: Send

impl<S, T> Unpin for Hsv<S, T> where
    S: Unpin,
    T: Unpin

impl<S, T> Sync for Hsv<S, T> where
    S: Sync,
    T: Sync

impl<S, T> UnwindSafe for Hsv<S, T> where
    S: UnwindSafe,
    T: UnwindSafe

impl<S, T> RefUnwindSafe for Hsv<S, T> where
    S: RefUnwindSafe,
    T: RefUnwindSafe

Blanket Implementations

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<S, D, Swp, Dwp, T> AdaptFrom<S, Swp, Dwp, T> for D where
    D: FromColor<Dwp, T>,
    Dwp: WhitePoint,
    S: IntoColor<Swp, T>,
    Swp: WhitePoint,
    T: Component + Float
[src]

fn adapt_from(color: S) -> Self[src]

Convert the source color to the destination color using the bradford method by default Read more

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S where
    D: AdaptFrom<S, Swp, Dwp, T>,
    Dwp: WhitePoint,
    Swp: WhitePoint,
    T: Component + Float
[src]

fn adapt_into(self) -> D[src]

Convert the source color to the destination color using the bradford method by default Read more

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]