Struct palette::Hsv [−][src]
#[repr(C)]pub struct Hsv<S = Srgb, T = f32> where
T: FloatComponent,
S: RgbStandard, { pub hue: RgbHue<T>, pub saturation: T, pub value: T, pub standard: PhantomData<S>, }
Expand description
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.
standard: PhantomData<S>
The white point and RGB primaries this color is adapted to. The default is the sRGB standard.
Implementations
Convert to a (hue, saturation, value)
tuple.
Convert from a (hue, saturation, value)
tuple.
Return the saturation
value minimum.
Return the saturation
value maximum.
Trait Implementations
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
.
impl<S, T> AddAssign<Hsv<S, T>> for Hsv<S, T> where
T: FloatComponent + AddAssign,
S: RgbStandard,
impl<S, T> AddAssign<Hsv<S, T>> for Hsv<S, T> where
T: FloatComponent + AddAssign,
S: RgbStandard,
Performs the +=
operation. Read more
Performs the +=
operation. Read more
impl<S, T, P: ?Sized> AsMut<P> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
P: RawPixel<T>,
impl<S, T, P: ?Sized> AsMut<P> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
P: RawPixel<T>,
impl<S, T, P: ?Sized> AsRef<P> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
P: RawPixel<T>,
impl<S, T, P: ?Sized> AsRef<P> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
P: RawPixel<T>,
impl<S, T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
T: FloatComponent,
_C: IntoColorUnclamped<Self>,
_A: Component,
impl<S, T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
T: FloatComponent,
_C: IntoColorUnclamped<Self>,
_A: Component,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<S, T> FromColorUnclamped<Hsl<S, T>> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
impl<S, T> FromColorUnclamped<Hsl<S, T>> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<S, T> FromColorUnclamped<Hsluv<<<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<Hsluv<<<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<Hsv<S, T>> for Hsl<S, T> where
T: FloatComponent,
S: RgbStandard,
impl<S, T> FromColorUnclamped<Hsv<S, T>> for Hsl<S, T> where
T: FloatComponent,
S: RgbStandard,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<S, T> FromColorUnclamped<Hsv<S, T>> for Hwb<S, T> where
S: RgbStandard,
T: FloatComponent,
impl<S, T> FromColorUnclamped<Hsv<S, T>> for Hwb<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<Hsv<S, T>> for Rgb<S, T> where
S: RgbStandard,
T: FloatComponent,
impl<S, T> FromColorUnclamped<Hsv<S, 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<S1, S2, T> FromColorUnclamped<Hsv<S1, T>> for Hsv<S2, T> where
T: FloatComponent,
S1: RgbStandard,
S2: RgbStandard,
S1::Space: RgbSpace<WhitePoint = <S2::Space as RgbSpace>::WhitePoint>,
impl<S1, S2, T> FromColorUnclamped<Hsv<S1, T>> for Hsv<S2, T> where
T: FloatComponent,
S1: RgbStandard,
S2: RgbStandard,
S1::Space: RgbSpace<WhitePoint = <S2::Space as RgbSpace>::WhitePoint>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T, _S> FromColorUnclamped<Hsv<_S, T>> for Hsluv<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 Hsluv<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<Hsv<_S, T>> for Lab<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 Lab<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<Hsv<_S, T>> for Lch<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 Lch<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<Hsv<_S, T>> for Lchuv<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 Lchuv<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<S, T, _S> FromColorUnclamped<Hsv<_S, T>> for Luma<S, T> where
T: Component,
S: LumaStandard,
T: FloatComponent,
T: FloatComponent,
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = S::WhitePoint>,
impl<S, T, _S> FromColorUnclamped<Hsv<_S, T>> for Luma<S, T> where
T: Component,
S: LumaStandard,
T: FloatComponent,
T: FloatComponent,
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = S::WhitePoint>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T, _S> FromColorUnclamped<Hsv<_S, T>> for Luv<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 Luv<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<T, _S> FromColorUnclamped<Hsv<_S, T>> for Oklab<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = D65>,
impl<T, _S> FromColorUnclamped<Hsv<_S, T>> for Oklab<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = D65>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<T, _S> FromColorUnclamped<Hsv<_S, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = D65>,
impl<T, _S> FromColorUnclamped<Hsv<_S, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = D65>,
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<Hsv<_S, T>> for Yxy<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 Yxy<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<S, T> FromColorUnclamped<Hwb<S, T>> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
impl<S, T> FromColorUnclamped<Hwb<S, T>> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<S, T> FromColorUnclamped<Lab<<<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<Lab<<<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<Lch<<<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<Lch<<<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<Lchuv<<<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<Lchuv<<<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, _S> FromColorUnclamped<Luma<_S, T>> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
T: FloatComponent,
T: FloatComponent,
_S: LumaStandard<WhitePoint = <S::Space as RgbSpace>::WhitePoint>,
impl<S, T, _S> FromColorUnclamped<Luma<_S, T>> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
T: FloatComponent,
T: FloatComponent,
_S: LumaStandard<WhitePoint = <S::Space as RgbSpace>::WhitePoint>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<S, T> FromColorUnclamped<Luv<<<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<Luv<<<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<Oklab<T>> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
T: FloatComponent,
T: FloatComponent,
Rgb<S, T>: FromColorUnclamped<Oklab<T>>,
impl<S, T> FromColorUnclamped<Oklab<T>> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
T: FloatComponent,
T: FloatComponent,
Rgb<S, T>: FromColorUnclamped<Oklab<T>>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<S, T> FromColorUnclamped<Oklch<T>> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
T: FloatComponent,
T: FloatComponent,
Rgb<S, T>: FromColorUnclamped<Oklch<T>>,
impl<S, T> FromColorUnclamped<Oklch<T>> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
T: FloatComponent,
T: FloatComponent,
Rgb<S, T>: FromColorUnclamped<Oklch<T>>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<S, T> FromColorUnclamped<Rgb<S, T>> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
impl<S, T> FromColorUnclamped<Rgb<S, T>> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
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<Yxy<<<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<Yxy<<<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> PartialEq<Hsv<S, T>> for Hsv<S, T> where
T: FloatComponent + PartialEq,
S: RgbStandard,
impl<S, T> PartialEq<Hsv<S, T>> for Hsv<S, T> where
T: FloatComponent + PartialEq,
S: RgbStandard,
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<S, T> RelativeEq<Hsv<S, T>> for Hsv<S, T> where
T: FloatComponent + RelativeEq,
T::Epsilon: Copy + Float + FromF64,
S: RgbStandard + PartialEq,
impl<S, T> RelativeEq<Hsv<S, T>> for Hsv<S, T> where
T: FloatComponent + RelativeEq,
T::Epsilon: Copy + Float + FromF64,
S: RgbStandard + 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 (de)saturation modifier.
Scale the color towards the maximum saturation by factor
, a value
ranging from 0.0
to 1.0
. Read more
Increase the saturation by amount
, a value ranging from 0.0
to
1.0
. Read more
Scale the color towards the minimum saturation by factor
, a value
ranging from 0.0
to 1.0
. Read more
Increase the saturation by amount
, a value ranging from 0.0
to
1.0
. Read more
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
impl<S, T> SubAssign<Hsv<S, T>> for Hsv<S, T> where
T: FloatComponent + SubAssign,
S: RgbStandard,
impl<S, T> SubAssign<Hsv<S, T>> for Hsv<S, T> where
T: FloatComponent + SubAssign,
S: RgbStandard,
Performs the -=
operation. Read more
Performs the -=
operation. Read more
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<S, T, _A> WithAlpha<_A> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
_A: Component,
impl<S, T, _A> WithAlpha<_A> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
_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<S, T> RefUnwindSafe for Hsv<S, T> where
S: RefUnwindSafe,
T: RefUnwindSafe,
impl<S, T> UnwindSafe for Hsv<S, T> where
S: UnwindSafe,
T: 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