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());
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so 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.