pub trait FromColorUnclamped<T>: Sized {
// Required method
fn from_color_unclamped(val: T) -> Self;
}
Expand description
A trait for unchecked conversion of one color from another.
See FromColor
for a lossy version of this trait.
See TryFromColor
for a trait that gives an error when the result
is out of bounds.
See the convert
module for how to implement FromColorUnclamped
for
custom colors.
Required Methods§
sourcefn from_color_unclamped(val: T) -> Self
fn from_color_unclamped(val: T) -> Self
Convert from T. The resulting color might be invalid in its color space.
use palette::convert::FromColorUnclamped;
use palette::{IsWithinBounds, Lch, Srgb};
let rgb = Srgb::from_color_unclamped(Lch::new(50.0f32, 100.0, -175.0));
assert!(!rgb.is_within_bounds());
Object Safety§
This trait is not object safe.
Implementations on Foreign Types§
source§impl<T, U> FromColorUnclamped<Box<[T]>> for Box<[U]>
impl<T, U> FromColorUnclamped<Box<[T]>> for Box<[U]>
source§fn from_color_unclamped(color: Box<[T]>) -> Box<[U]>
fn from_color_unclamped(color: Box<[T]>) -> Box<[U]>
Convert all colors in place, without reallocating.
use palette::{convert::FromColorUnclamped, SaturateAssign, Srgb, Lch};
let srgb = vec![Srgb::new(0.8f32, 1.0, 0.2), Srgb::new(0.9, 0.1, 0.3)].into_boxed_slice();
let mut lch = Box::<[Lch]>::from_color_unclamped(srgb);
lch.saturate_assign(0.1);
let srgb = Box::<[Srgb]>::from_color_unclamped(lch);
source§impl<T, U> FromColorUnclamped<Vec<T>> for Vec<U>
impl<T, U> FromColorUnclamped<Vec<T>> for Vec<U>
source§fn from_color_unclamped(color: Vec<T>) -> Vec<U>
fn from_color_unclamped(color: Vec<T>) -> Vec<U>
Convert all colors in place, without reallocating.
use palette::{convert::FromColorUnclamped, SaturateAssign, Srgb, Lch};
let srgb = vec![Srgb::new(0.8f32, 1.0, 0.2), Srgb::new(0.9, 0.1, 0.3)];
let mut lch = Vec::<Lch>::from_color_unclamped(srgb);
lch.saturate_assign(0.1);
let srgb = Vec::<Srgb>::from_color_unclamped(lch);
Implementors§
impl<C1, C2, T> FromColorUnclamped<C1> for Alpha<C2, T>
impl<S1, S2, T> FromColorUnclamped<Luma<S2, T>> for Luma<S1, T>where
S1: LumaStandard + 'static,
S2: LumaStandard<WhitePoint = <S1 as LumaStandard>::WhitePoint> + 'static,
<S1 as LumaStandard>::TransferFn: FromLinear<T, T>,
<S2 as LumaStandard>::TransferFn: IntoLinear<T, T>,
impl<S1, S2, T> FromColorUnclamped<Rgb<S2, T>> for Rgb<S1, T>where
S1: RgbStandard + 'static,
S2: RgbStandard + 'static,
<S1 as RgbStandard>::TransferFn: FromLinear<T, T>,
<S2 as RgbStandard>::TransferFn: IntoLinear<T, T>,
<S2 as RgbStandard>::Space: RgbSpace<WhitePoint = <<S1 as RgbStandard>::Space as RgbSpace>::WhitePoint>,
Xyz<<<S2 as RgbStandard>::Space as RgbSpace>::WhitePoint, T>: FromColorUnclamped<Rgb<S2, T>>,
Rgb<S1, T>: FromColorUnclamped<Xyz<<<S1 as RgbStandard>::Space as RgbSpace>::WhitePoint, T>>,
impl<S1, S2, T> FromColorUnclamped<Hsl<S1, T>> for Hsl<S2, T>where
S1: RgbStandard + 'static,
S2: RgbStandard + 'static,
<S1 as RgbStandard>::Space: RgbSpace<WhitePoint = <<S2 as RgbStandard>::Space as RgbSpace>::WhitePoint>,
Rgb<S1, T>: FromColorUnclamped<Hsl<S1, T>>,
Rgb<S2, T>: FromColorUnclamped<Rgb<S1, T>>,
Hsl<S2, T>: FromColorUnclamped<Rgb<S2, T>>,
impl<S1, S2, T> FromColorUnclamped<Hsv<S1, T>> for Hsv<S2, T>where
S1: RgbStandard + 'static,
S2: RgbStandard + 'static,
<S1 as RgbStandard>::Space: RgbSpace<WhitePoint = <<S2 as RgbStandard>::Space as RgbSpace>::WhitePoint>,
Rgb<S1, T>: FromColorUnclamped<Hsv<S1, T>>,
Rgb<S2, T>: FromColorUnclamped<Rgb<S1, T>>,
Hsv<S2, T>: FromColorUnclamped<Rgb<S2, T>>,
impl<S1, S2, T> FromColorUnclamped<Hwb<S1, T>> for Hwb<S2, T>where
S1: RgbStandard + 'static,
S2: RgbStandard + 'static,
<S1 as RgbStandard>::Space: RgbSpace<WhitePoint = <<S2 as RgbStandard>::Space as RgbSpace>::WhitePoint>,
Hsv<S1, T>: FromColorUnclamped<Hwb<S1, T>>,
Hsv<S2, T>: FromColorUnclamped<Hsv<S1, T>>,
Hwb<S2, T>: FromColorUnclamped<Hsv<S2, T>>,
impl<S, St, T> FromColorUnclamped<Luma<St, T>> for Rgb<S, T>where
S: RgbStandard + 'static,
St: LumaStandard<WhitePoint = <<S as RgbStandard>::Space as RgbSpace>::WhitePoint> + 'static,
<S as RgbStandard>::TransferFn: FromLinear<T, T>,
<St as LumaStandard>::TransferFn: IntoLinear<T, T>,
T: Clone,
impl<S, T> FromColorUnclamped<Rgb<S, T>> for Hsl<S, T>where
T: RealAngle + Zero + One + MinMax + Arithmetics + PartialCmp + Clone,
<T as HasBoolMask>::Mask: BoolMask + BitOps + LazySelect<T> + Clone + 'static,
impl<S, T> FromColorUnclamped<Rgb<S, T>> for Hsv<S, T>where
T: RealAngle + One + Zero + MinMax + Arithmetics + PartialCmp + Clone,
<T as HasBoolMask>::Mask: BoolMask + BitOps + LazySelect<T> + Clone + 'static,
impl<S, T> FromColorUnclamped<Rgb<S, T>> for Hwb<S, T>
impl<S, T> FromColorUnclamped<Rgb<S, T>> for Oklab<T>where
T: Real + Cbrt + Arithmetics + Copy,
S: RgbStandard,
<S as RgbStandard>::TransferFn: IntoLinear<T, T>,
<S as RgbStandard>::Space: RgbSpace<WhitePoint = D65> + 'static,
Xyz<D65, T>: FromColorUnclamped<Rgb<S, T>>,
impl<S, T> FromColorUnclamped<Hsl<S, T>> for Rgb<S, T>where
T: Real + RealAngle + UnsignedAngle + Zero + One + Abs + Round + PartialCmp + Arithmetics + Clone,
<T as HasBoolMask>::Mask: LazySelect<T> + BitOps + Clone,
impl<S, T> FromColorUnclamped<Hsl<S, T>> for Hsv<S, T>where
T: Real + Zero + One + IsValidDivisor + Arithmetics + PartialCmp + Clone,
<T as HasBoolMask>::Mask: LazySelect<T>,
impl<S, T> FromColorUnclamped<Hsl<S, T>> for Hwb<S, T>
impl<S, T> FromColorUnclamped<Hsluv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Rgb<S, T>where
S: RgbStandard,
Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>: FromColorUnclamped<Hsluv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Rgb<S, T>>,
impl<S, T> FromColorUnclamped<Hsluv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T>where
S: RgbStandard,
Rgb<S, T>: FromColorUnclamped<Hsluv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsl<S, T>>,
impl<S, T> FromColorUnclamped<Hsluv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T>where
S: RgbStandard,
Rgb<S, T>: FromColorUnclamped<Hsluv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsv<S, T>>,
impl<S, T> FromColorUnclamped<Hsluv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hwb<S, T>where
S: RgbStandard,
Hsv<S, T>: FromColorUnclamped<Hsluv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hwb<S, T>>,
impl<S, T> FromColorUnclamped<Hsluv<<S as LumaStandard>::WhitePoint, T>> for Luma<S, T>where
S: LumaStandard,
Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Hsluv<<S as LumaStandard>::WhitePoint, T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T> FromColorUnclamped<Hsv<S, T>> for Rgb<S, T>where
T: Real + RealAngle + UnsignedAngle + Round + Zero + One + Abs + PartialCmp + Arithmetics + Clone,
<T as HasBoolMask>::Mask: LazySelect<T> + BitOps + Clone,
impl<S, T> FromColorUnclamped<Hsv<S, T>> for Hsl<S, T>where
T: Real + Zero + One + IsValidDivisor + Arithmetics + PartialCmp + Clone,
<T as HasBoolMask>::Mask: LazySelect<T> + Not<Output = <T as HasBoolMask>::Mask>,
impl<S, T> FromColorUnclamped<Hsv<S, T>> for Hwb<S, T>where
T: One + Arithmetics,
impl<S, T> FromColorUnclamped<Hwb<S, T>> for Rgb<S, T>
impl<S, T> FromColorUnclamped<Hwb<S, T>> for Hsl<S, T>
impl<S, T> FromColorUnclamped<Hwb<S, T>> for Hsv<S, T>
impl<S, T> FromColorUnclamped<Lab<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Rgb<S, T>where
S: RgbStandard,
Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>: FromColorUnclamped<Lab<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Rgb<S, T>>,
impl<S, T> FromColorUnclamped<Lab<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T>where
S: RgbStandard,
Rgb<S, T>: FromColorUnclamped<Lab<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsl<S, T>>,
impl<S, T> FromColorUnclamped<Lab<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T>where
S: RgbStandard,
Rgb<S, T>: FromColorUnclamped<Lab<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsv<S, T>>,
impl<S, T> FromColorUnclamped<Lab<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hwb<S, T>where
S: RgbStandard,
Hsv<S, T>: FromColorUnclamped<Lab<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hwb<S, T>>,
impl<S, T> FromColorUnclamped<Lab<<S as LumaStandard>::WhitePoint, T>> for Luma<S, T>where
S: LumaStandard,
Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Lab<<S as LumaStandard>::WhitePoint, T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T> FromColorUnclamped<Lch<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Rgb<S, T>where
S: RgbStandard,
Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>: FromColorUnclamped<Lch<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Rgb<S, T>>,
impl<S, T> FromColorUnclamped<Lch<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T>where
S: RgbStandard,
Rgb<S, T>: FromColorUnclamped<Lch<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsl<S, T>>,
impl<S, T> FromColorUnclamped<Lch<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T>where
S: RgbStandard,
Rgb<S, T>: FromColorUnclamped<Lch<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsv<S, T>>,
impl<S, T> FromColorUnclamped<Lch<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hwb<S, T>where
S: RgbStandard,
Hsv<S, T>: FromColorUnclamped<Lch<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hwb<S, T>>,
impl<S, T> FromColorUnclamped<Lch<<S as LumaStandard>::WhitePoint, T>> for Luma<S, T>where
S: LumaStandard,
Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Lch<<S as LumaStandard>::WhitePoint, T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T> FromColorUnclamped<Lchuv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Rgb<S, T>where
S: RgbStandard,
Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>: FromColorUnclamped<Lchuv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Rgb<S, T>>,
impl<S, T> FromColorUnclamped<Lchuv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T>where
S: RgbStandard,
Rgb<S, T>: FromColorUnclamped<Lchuv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsl<S, T>>,
impl<S, T> FromColorUnclamped<Lchuv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T>where
S: RgbStandard,
Rgb<S, T>: FromColorUnclamped<Lchuv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsv<S, T>>,
impl<S, T> FromColorUnclamped<Lchuv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hwb<S, T>where
S: RgbStandard,
Hsv<S, T>: FromColorUnclamped<Lchuv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hwb<S, T>>,
impl<S, T> FromColorUnclamped<Lchuv<<S as LumaStandard>::WhitePoint, T>> for Luma<S, T>where
S: LumaStandard,
Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Lchuv<<S as LumaStandard>::WhitePoint, T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T> FromColorUnclamped<Luv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Rgb<S, T>where
S: RgbStandard,
Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>: FromColorUnclamped<Luv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Rgb<S, T>>,
impl<S, T> FromColorUnclamped<Luv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T>where
S: RgbStandard,
Rgb<S, T>: FromColorUnclamped<Luv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsl<S, T>>,
impl<S, T> FromColorUnclamped<Luv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T>where
S: RgbStandard,
Rgb<S, T>: FromColorUnclamped<Luv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsv<S, T>>,
impl<S, T> FromColorUnclamped<Luv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hwb<S, T>where
S: RgbStandard,
Hsv<S, T>: FromColorUnclamped<Luv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hwb<S, T>>,
impl<S, T> FromColorUnclamped<Luv<<S as LumaStandard>::WhitePoint, T>> for Luma<S, T>where
S: LumaStandard,
Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Luv<<S as LumaStandard>::WhitePoint, T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T> FromColorUnclamped<Okhsl<T>> for Luma<S, T>where
S: LumaStandard,
Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Okhsl<T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T> FromColorUnclamped<Okhsl<T>> for Rgb<S, T>
impl<S, T> FromColorUnclamped<Okhsl<T>> for Hsl<S, T>
impl<S, T> FromColorUnclamped<Okhsl<T>> for Hsv<S, T>
impl<S, T> FromColorUnclamped<Okhsl<T>> for Hwb<S, T>
impl<S, T> FromColorUnclamped<Okhsv<T>> for Luma<S, T>where
S: LumaStandard,
Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Okhsv<T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T> FromColorUnclamped<Okhsv<T>> for Rgb<S, T>
impl<S, T> FromColorUnclamped<Okhsv<T>> for Hsl<S, T>
impl<S, T> FromColorUnclamped<Okhsv<T>> for Hsv<S, T>
impl<S, T> FromColorUnclamped<Okhsv<T>> for Hwb<S, T>
impl<S, T> FromColorUnclamped<Okhwb<T>> for Luma<S, T>where
S: LumaStandard,
Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Okhwb<T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T> FromColorUnclamped<Okhwb<T>> for Rgb<S, T>
impl<S, T> FromColorUnclamped<Okhwb<T>> for Hsl<S, T>
impl<S, T> FromColorUnclamped<Okhwb<T>> for Hsv<S, T>
impl<S, T> FromColorUnclamped<Okhwb<T>> for Hwb<S, T>
impl<S, T> FromColorUnclamped<Oklab<T>> for Luma<S, T>where
S: LumaStandard,
Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Oklab<T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T> FromColorUnclamped<Oklab<T>> for Rgb<S, T>where
T: Real + Arithmetics + Copy,
S: RgbStandard,
<S as RgbStandard>::TransferFn: FromLinear<T, T>,
<S as RgbStandard>::Space: RgbSpace<WhitePoint = D65> + 'static,
Rgb<Linear<Srgb>, T>: IntoColorUnclamped<Rgb<S, T>>,
Xyz<D65, T>: FromColorUnclamped<Oklab<T>> + IntoColorUnclamped<Rgb<S, T>>,
impl<S, T> FromColorUnclamped<Oklab<T>> for Hsl<S, T>
impl<S, T> FromColorUnclamped<Oklab<T>> for Hsv<S, T>
impl<S, T> FromColorUnclamped<Oklab<T>> for Hwb<S, T>
impl<S, T> FromColorUnclamped<Oklch<T>> for Luma<S, T>where
S: LumaStandard,
Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Oklch<T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T> FromColorUnclamped<Oklch<T>> for Rgb<S, T>
impl<S, T> FromColorUnclamped<Oklch<T>> for Hsl<S, T>
impl<S, T> FromColorUnclamped<Oklch<T>> for Hsv<S, T>
impl<S, T> FromColorUnclamped<Oklch<T>> for Hwb<S, T>
impl<S, T> FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Rgb<S, T>where
S: RgbStandard,
<S as RgbStandard>::TransferFn: FromLinear<T, T>,
<<S as RgbStandard>::Space as RgbSpace>::Primaries: Primaries<<T as FromScalar>::Scalar>,
<<S as RgbStandard>::Space as RgbSpace>::WhitePoint: WhitePoint<<T as FromScalar>::Scalar>,
T: Arithmetics + FromScalar,
<T as FromScalar>::Scalar: Real + Recip + IsValidDivisor<Mask = bool> + Arithmetics + Clone + FromScalar<Scalar = <T as FromScalar>::Scalar>,
Yxy<Any, <T as FromScalar>::Scalar>: IntoColorUnclamped<Xyz<Any, <T as FromScalar>::Scalar>>,
impl<S, T> FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T>where
S: RgbStandard,
Rgb<S, T>: FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsl<S, T>>,
impl<S, T> FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T>where
S: RgbStandard,
Rgb<S, T>: FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsv<S, T>>,
impl<S, T> FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hwb<S, T>where
S: RgbStandard,
Hsv<S, T>: FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hwb<S, T>>,
impl<S, T> FromColorUnclamped<Xyz<<S as LumaStandard>::WhitePoint, T>> for Luma<S, T>
impl<S, T> FromColorUnclamped<Yxy<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Rgb<S, T>where
S: RgbStandard,
Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>: FromColorUnclamped<Yxy<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Rgb<S, T>>,
impl<S, T> FromColorUnclamped<Yxy<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T>where
S: RgbStandard,
Rgb<S, T>: FromColorUnclamped<Yxy<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsl<S, T>>,
impl<S, T> FromColorUnclamped<Yxy<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T>where
S: RgbStandard,
Rgb<S, T>: FromColorUnclamped<Yxy<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsv<S, T>>,
impl<S, T> FromColorUnclamped<Yxy<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hwb<S, T>where
S: RgbStandard,
Hsv<S, T>: FromColorUnclamped<Yxy<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hwb<S, T>>,
impl<S, T> FromColorUnclamped<Yxy<<S as LumaStandard>::WhitePoint, T>> for Luma<S, T>
impl<S, T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Luma<S, T>where
_C: IntoColorUnclamped<Luma<S, T>>,
impl<S, T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Rgb<S, T>where
_C: IntoColorUnclamped<Rgb<S, T>>,
impl<S, T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Hsl<S, T>where
_C: IntoColorUnclamped<Hsl<S, T>>,
impl<S, T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Hsv<S, T>where
_C: IntoColorUnclamped<Hsv<S, T>>,
impl<S, T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Hwb<S, T>where
_C: IntoColorUnclamped<Hwb<S, T>>,
impl<S, T, _S> FromColorUnclamped<Luma<_S, T>> for Hsl<S, T>where
_S: LumaStandard<WhitePoint = <<S as RgbStandard>::Space as RgbSpace>::WhitePoint>,
S: RgbStandard,
Rgb<S, T>: FromColorUnclamped<Luma<_S, T>> + IntoColorUnclamped<Hsl<S, T>>,
impl<S, T, _S> FromColorUnclamped<Luma<_S, T>> for Hsv<S, T>where
_S: LumaStandard<WhitePoint = <<S as RgbStandard>::Space as RgbSpace>::WhitePoint>,
S: RgbStandard,
Rgb<S, T>: FromColorUnclamped<Luma<_S, T>> + IntoColorUnclamped<Hsv<S, T>>,
impl<S, T, _S> FromColorUnclamped<Luma<_S, T>> for Hwb<S, T>where
_S: LumaStandard<WhitePoint = <<S as RgbStandard>::Space as RgbSpace>::WhitePoint>,
S: RgbStandard,
Hsv<S, T>: FromColorUnclamped<Luma<_S, T>> + IntoColorUnclamped<Hwb<S, T>>,
impl<S, T, _S> FromColorUnclamped<Rgb<_S, T>> for Luma<S, T>where
_S: RgbStandard,
<_S as RgbStandard>::Space: RgbSpace<WhitePoint = <S as LumaStandard>::WhitePoint>,
S: LumaStandard,
Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Rgb<_S, T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T, _S> FromColorUnclamped<Hsl<_S, T>> for Luma<S, T>where
_S: RgbStandard,
<_S as RgbStandard>::Space: RgbSpace<WhitePoint = <S as LumaStandard>::WhitePoint>,
S: LumaStandard,
Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Hsl<_S, T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T, _S> FromColorUnclamped<Hsv<_S, T>> for Luma<S, T>where
_S: RgbStandard,
<_S as RgbStandard>::Space: RgbSpace<WhitePoint = <S as LumaStandard>::WhitePoint>,
S: LumaStandard,
Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Hsv<_S, T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T, _S> FromColorUnclamped<Hwb<_S, T>> for Luma<S, T>where
_S: RgbStandard,
<_S as RgbStandard>::Space: RgbSpace<WhitePoint = <S as LumaStandard>::WhitePoint>,
S: LumaStandard,
Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Hwb<_S, T>> + IntoColorUnclamped<Luma<S, T>>,
impl<T> FromColorUnclamped<Cam16Jch<T>> for Cam16Jch<T>
impl<T> FromColorUnclamped<Cam16Jmh<T>> for Cam16Jmh<T>
impl<T> FromColorUnclamped<Cam16Jmh<T>> for Cam16UcsJab<T>
impl<T> FromColorUnclamped<Cam16Jmh<T>> for Cam16UcsJmh<T>
impl<T> FromColorUnclamped<Cam16Jsh<T>> for Cam16Jsh<T>
impl<T> FromColorUnclamped<Cam16Qch<T>> for Cam16Qch<T>
impl<T> FromColorUnclamped<Cam16Qmh<T>> for Cam16Qmh<T>
impl<T> FromColorUnclamped<Cam16Qsh<T>> for Cam16Qsh<T>
impl<T> FromColorUnclamped<Cam16<T>> for Cam16Jch<T>
impl<T> FromColorUnclamped<Cam16<T>> for Cam16Jmh<T>
impl<T> FromColorUnclamped<Cam16<T>> for Cam16Jsh<T>
impl<T> FromColorUnclamped<Cam16<T>> for Cam16Qch<T>
impl<T> FromColorUnclamped<Cam16<T>> for Cam16Qmh<T>
impl<T> FromColorUnclamped<Cam16<T>> for Cam16Qsh<T>
impl<T> FromColorUnclamped<Cam16<T>> for Cam16UcsJab<T>
impl<T> FromColorUnclamped<Cam16<T>> for Cam16UcsJmh<T>
impl<T> FromColorUnclamped<Cam16UcsJab<T>> for Cam16Jmh<T>
impl<T> FromColorUnclamped<Cam16UcsJab<T>> for Cam16UcsJab<T>
impl<T> FromColorUnclamped<Cam16UcsJab<T>> for Cam16UcsJmh<T>
impl<T> FromColorUnclamped<Cam16UcsJmh<T>> for Cam16Jmh<T>
impl<T> FromColorUnclamped<Cam16UcsJmh<T>> for Cam16UcsJab<T>
impl<T> FromColorUnclamped<Cam16UcsJmh<T>> for Cam16UcsJmh<T>
impl<T> FromColorUnclamped<Hsluv<D65, T>> for Okhsl<T>where
D65: WhitePoint<T>,
Oklab<T>: FromColorUnclamped<Hsluv<D65, T>> + IntoColorUnclamped<Okhsl<T>>,
impl<T> FromColorUnclamped<Hsluv<D65, T>> for Okhsv<T>where
D65: WhitePoint<T>,
Oklab<T>: FromColorUnclamped<Hsluv<D65, T>> + IntoColorUnclamped<Okhsv<T>>,
impl<T> FromColorUnclamped<Hsluv<D65, T>> for Okhwb<T>where
D65: WhitePoint<T>,
Okhsv<T>: FromColorUnclamped<Hsluv<D65, T>> + IntoColorUnclamped<Okhwb<T>>,
impl<T> FromColorUnclamped<Hsluv<D65, T>> for Oklab<T>where
D65: WhitePoint<T>,
Xyz<D65, T>: FromColorUnclamped<Hsluv<D65, T>> + IntoColorUnclamped<Oklab<T>>,
impl<T> FromColorUnclamped<Hsluv<D65, T>> for Oklch<T>where
D65: WhitePoint<T>,
Oklab<T>: FromColorUnclamped<Hsluv<D65, T>> + IntoColorUnclamped<Oklch<T>>,
impl<T> FromColorUnclamped<Lab<D65, T>> for Okhsl<T>
impl<T> FromColorUnclamped<Lab<D65, T>> for Okhsv<T>
impl<T> FromColorUnclamped<Lab<D65, T>> for Okhwb<T>
impl<T> FromColorUnclamped<Lab<D65, T>> for Oklab<T>where
D65: WhitePoint<T>,
Xyz<D65, T>: FromColorUnclamped<Lab<D65, T>> + IntoColorUnclamped<Oklab<T>>,
impl<T> FromColorUnclamped<Lab<D65, T>> for Oklch<T>
impl<T> FromColorUnclamped<Lch<D65, T>> for Okhsl<T>
impl<T> FromColorUnclamped<Lch<D65, T>> for Okhsv<T>
impl<T> FromColorUnclamped<Lch<D65, T>> for Okhwb<T>
impl<T> FromColorUnclamped<Lch<D65, T>> for Oklab<T>where
D65: WhitePoint<T>,
Xyz<D65, T>: FromColorUnclamped<Lch<D65, T>> + IntoColorUnclamped<Oklab<T>>,
impl<T> FromColorUnclamped<Lch<D65, T>> for Oklch<T>
impl<T> FromColorUnclamped<Lchuv<D65, T>> for Okhsl<T>where
D65: WhitePoint<T>,
Oklab<T>: FromColorUnclamped<Lchuv<D65, T>> + IntoColorUnclamped<Okhsl<T>>,
impl<T> FromColorUnclamped<Lchuv<D65, T>> for Okhsv<T>where
D65: WhitePoint<T>,
Oklab<T>: FromColorUnclamped<Lchuv<D65, T>> + IntoColorUnclamped<Okhsv<T>>,
impl<T> FromColorUnclamped<Lchuv<D65, T>> for Okhwb<T>where
D65: WhitePoint<T>,
Okhsv<T>: FromColorUnclamped<Lchuv<D65, T>> + IntoColorUnclamped<Okhwb<T>>,
impl<T> FromColorUnclamped<Lchuv<D65, T>> for Oklab<T>where
D65: WhitePoint<T>,
Xyz<D65, T>: FromColorUnclamped<Lchuv<D65, T>> + IntoColorUnclamped<Oklab<T>>,
impl<T> FromColorUnclamped<Lchuv<D65, T>> for Oklch<T>where
D65: WhitePoint<T>,
Oklab<T>: FromColorUnclamped<Lchuv<D65, T>> + IntoColorUnclamped<Oklch<T>>,
impl<T> FromColorUnclamped<Luv<D65, T>> for Okhsl<T>
impl<T> FromColorUnclamped<Luv<D65, T>> for Okhsv<T>
impl<T> FromColorUnclamped<Luv<D65, T>> for Okhwb<T>
impl<T> FromColorUnclamped<Luv<D65, T>> for Oklab<T>where
D65: WhitePoint<T>,
Xyz<D65, T>: FromColorUnclamped<Luv<D65, T>> + IntoColorUnclamped<Oklab<T>>,
impl<T> FromColorUnclamped<Luv<D65, T>> for Oklch<T>
impl<T> FromColorUnclamped<Okhsl<T>> for Okhsl<T>
impl<T> FromColorUnclamped<Okhsl<T>> for Okhsv<T>
impl<T> FromColorUnclamped<Okhsl<T>> for Okhwb<T>
impl<T> FromColorUnclamped<Okhsl<T>> for Oklab<T>where
T: RealAngle + One + Zero + Arithmetics + Sqrt + MinMax + PartialOrd + HasBoolMask<Mask = bool> + Powi + Cbrt + Trigonometry + Clone,
Oklab<T>: IntoColorUnclamped<Rgb<Linear<Srgb>, T>>,
§See
See okhsl_to_srgb
impl<T> FromColorUnclamped<Okhsl<T>> for Oklch<T>
impl<T> FromColorUnclamped<Okhsv<T>> for Okhsl<T>
impl<T> FromColorUnclamped<Okhsv<T>> for Okhsv<T>
impl<T> FromColorUnclamped<Okhsv<T>> for Okhwb<T>where
T: One + Arithmetics,
impl<T> FromColorUnclamped<Okhsv<T>> for Oklab<T>where
T: RealAngle + PartialOrd + HasBoolMask<Mask = bool> + MinMax + Powi + Arithmetics + Clone + One + Zero + Cbrt + Trigonometry,
Oklab<T>: IntoColorUnclamped<Rgb<Linear<Srgb>, T>>,
impl<T> FromColorUnclamped<Okhsv<T>> for Oklch<T>
impl<T> FromColorUnclamped<Okhwb<T>> for Okhsl<T>
impl<T> FromColorUnclamped<Okhwb<T>> for Okhsv<T>
impl<T> FromColorUnclamped<Okhwb<T>> for Oklab<T>
impl<T> FromColorUnclamped<Okhwb<T>> for Oklch<T>
impl<T> FromColorUnclamped<Oklab<T>> for Okhsl<T>where
T: Zero + Arithmetics + Powi + Sqrt + Hypot + MinMax + Cbrt + IsValidDivisor<Mask = bool, Mask = bool> + HasBoolMask + Real + PartialOrd + Clone + One,
Oklab<T>: GetHue<Hue = OklabHue<T>> + IntoColorUnclamped<Rgb<Linear<Srgb>, T>>,
§See
See srgb_to_okhsl
impl<T> FromColorUnclamped<Oklab<T>> for Okhsv<T>where
T: Clone + Powi + Sqrt + Cbrt + Arithmetics + Trigonometry + Zero + Hypot + One + IsValidDivisor<Mask = bool, Mask = bool> + HasBoolMask + Real + PartialOrd + MinMax,
Oklab<T>: GetHue<Hue = OklabHue<T>> + IntoColorUnclamped<Rgb<Linear<Srgb>, T>>,
Converts lab
to Okhsv
in the bounds of sRGB.
§See
See srgb_to_okhsv
.
This implementation differs from srgb_to_okhsv in that it starts with the lab
value and produces hues in degrees, whereas srgb_to_okhsv
produces degree/360.