Trait palette::convert::FromColorUnclamped
source · 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());
Implementations on Foreign Types§
source§impl<T, U> FromColorUnclamped<Vec<T, Global>> for Vec<U>where
T: ArrayCast,
U: ArrayCast<Array = T::Array> + FromColorUnclamped<T>,
impl<T, U> FromColorUnclamped<Vec<T, Global>> for Vec<U>where T: ArrayCast, U: ArrayCast<Array = T::Array> + FromColorUnclamped<T>,
source§fn from_color_unclamped(color: Vec<T>) -> Self
fn from_color_unclamped(color: Vec<T>) -> Self
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);
source§impl<T, U> FromColorUnclamped<Box<[T], Global>> for Box<[U]>where
T: ArrayCast,
U: ArrayCast<Array = T::Array> + FromColorUnclamped<T>,
impl<T, U> FromColorUnclamped<Box<[T], Global>> for Box<[U]>where T: ArrayCast, U: ArrayCast<Array = T::Array> + FromColorUnclamped<T>,
source§fn from_color_unclamped(color: Box<[T]>) -> Self
fn from_color_unclamped(color: Box<[T]>) -> Self
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);
Implementors§
impl<C1: WithAlpha<T>, C2, T> FromColorUnclamped<C1> for Alpha<C2, T>where C1::Color: IntoColorUnclamped<C2>,
impl<S1, S2, T> FromColorUnclamped<Luma<S2, T>> for Luma<S1, T>where S1: LumaStandard + 'static, S2: LumaStandard<WhitePoint = S1::WhitePoint> + 'static, S1::TransferFn: FromLinear<T, T>, S2::TransferFn: IntoLinear<T, T>,
impl<S1, S2, T> FromColorUnclamped<Rgb<S2, T>> for Rgb<S1, T>where S1: RgbStandard + 'static, S2: RgbStandard + 'static, S1::TransferFn: FromLinear<T, T>, S2::TransferFn: IntoLinear<T, T>, S2::Space: RgbSpace<WhitePoint = <S1::Space as RgbSpace>::WhitePoint>, Xyz<<S2::Space as RgbSpace>::WhitePoint, T>: FromColorUnclamped<Rgb<S2, T>>, Rgb<S1, T>: FromColorUnclamped<Xyz<<S1::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::Space: RgbSpace<WhitePoint = <S2::Space as RgbSpace>::WhitePoint>, Rgb<S1, T>: FromColorUnclamped<Hsl<S1, T>>, Rgb<S2, T>: FromColorUnclamped<Rgb<S1, T>>, Self: FromColorUnclamped<Rgb<S2, T>>,
impl<S1, S2, T> FromColorUnclamped<Hsv<S1, T>> for Hsv<S2, T>where S1: RgbStandard + 'static, S2: RgbStandard + 'static, S1::Space: RgbSpace<WhitePoint = <S2::Space as RgbSpace>::WhitePoint>, Rgb<S1, T>: FromColorUnclamped<Hsv<S1, T>>, Rgb<S2, T>: FromColorUnclamped<Rgb<S1, T>>, Self: FromColorUnclamped<Rgb<S2, T>>,
impl<S1, S2, T> FromColorUnclamped<Hwb<S1, T>> for Hwb<S2, T>where S1: RgbStandard + 'static, S2: RgbStandard + 'static, S1::Space: RgbSpace<WhitePoint = <S2::Space as RgbSpace>::WhitePoint>, Hsv<S1, T>: FromColorUnclamped<Hwb<S1, T>>, Hsv<S2, T>: FromColorUnclamped<Hsv<S1, T>>, Self: FromColorUnclamped<Hsv<S2, T>>,
impl<S, St, T> FromColorUnclamped<Luma<St, T>> for Rgb<S, T>where S: RgbStandard + 'static, St: LumaStandard<WhitePoint = <S::Space as RgbSpace>::WhitePoint> + 'static, S::TransferFn: FromLinear<T, T>, St::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::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::Mask: BoolMask + BitOps + LazySelect<T> + Clone + 'static,
impl<S, T> FromColorUnclamped<Rgb<S, T>> for Hwb<S, T>where Hsv<S, T>: FromColorUnclamped<Rgb<S, T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Rgb<S, T>> for Oklab<T>where T: Real + Cbrt + Arithmetics + Copy, S: RgbStandard, S::TransferFn: IntoLinear<T, T>, S::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::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::Mask: LazySelect<T>,
impl<S, T> FromColorUnclamped<Hsl<S, T>> for Hwb<S, T>where Hsv<S, T>: FromColorUnclamped<Hsl<S, T>> + IntoColorUnclamped<Self>,
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<Self>,
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<Self>,
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<Self>,
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<Self>,
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<Self>,
impl<S, T> FromColorUnclamped<Hsv<S, T>> for Rgb<S, T>where T: Real + RealAngle + UnsignedAngle + Round + Zero + One + Abs + PartialCmp + Arithmetics + Clone, T::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::Mask: LazySelect<T> + Not<Output = T::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>where Hsv<S, T>: FromColorUnclamped<Hwb<S, T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Hwb<S, T>> for Hsl<S, T>where Hsv<S, T>: FromColorUnclamped<Hwb<S, T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Hwb<S, T>> for Hsv<S, T>where T: One + Zero + IsValidDivisor + Arithmetics, T::Mask: LazySelect<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<Self>,
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<Self>,
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<Self>,
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<Self>,
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<Self>,
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<Self>,
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<Self>,
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<Self>,
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<Self>,
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<Self>,
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<Self>,
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<Self>,
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<Self>,
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<Self>,
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<Self>,
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<Self>,
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<Self>,
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<Self>,
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<Self>,
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<Self>,
impl<S, T> FromColorUnclamped<Okhsl<T>> for Luma<S, T>where S: LumaStandard, Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Okhsl<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Okhsl<T>> for Rgb<S, T>where Oklab<T>: FromColorUnclamped<Okhsl<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Okhsl<T>> for Hsl<S, T>where Rgb<S, T>: FromColorUnclamped<Okhsl<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Okhsl<T>> for Hsv<S, T>where Rgb<S, T>: FromColorUnclamped<Okhsl<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Okhsl<T>> for Hwb<S, T>where Hsv<S, T>: FromColorUnclamped<Okhsl<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Okhsv<T>> for Luma<S, T>where S: LumaStandard, Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Okhsv<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Okhsv<T>> for Rgb<S, T>where Oklab<T>: FromColorUnclamped<Okhsv<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Okhsv<T>> for Hsl<S, T>where Rgb<S, T>: FromColorUnclamped<Okhsv<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Okhsv<T>> for Hsv<S, T>where Rgb<S, T>: FromColorUnclamped<Okhsv<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Okhsv<T>> for Hwb<S, T>where Hsv<S, T>: FromColorUnclamped<Okhsv<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Okhwb<T>> for Luma<S, T>where S: LumaStandard, Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Okhwb<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Okhwb<T>> for Rgb<S, T>where Oklab<T>: FromColorUnclamped<Okhwb<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Okhwb<T>> for Hsl<S, T>where Rgb<S, T>: FromColorUnclamped<Okhwb<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Okhwb<T>> for Hsv<S, T>where Rgb<S, T>: FromColorUnclamped<Okhwb<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Okhwb<T>> for Hwb<S, T>where Hsv<S, T>: FromColorUnclamped<Okhwb<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Oklab<T>> for Luma<S, T>where S: LumaStandard, Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Oklab<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Oklab<T>> for Rgb<S, T>where T: Real + Arithmetics + Copy, S: RgbStandard, S::TransferFn: FromLinear<T, T>, S::Space: RgbSpace<WhitePoint = D65> + 'static, Rgb<Linear<Srgb>, T>: IntoColorUnclamped<Self>, Xyz<D65, T>: FromColorUnclamped<Oklab<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Oklab<T>> for Hsl<S, T>where Rgb<S, T>: FromColorUnclamped<Oklab<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Oklab<T>> for Hsv<S, T>where Rgb<S, T>: FromColorUnclamped<Oklab<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Oklab<T>> for Hwb<S, T>where Hsv<S, T>: FromColorUnclamped<Oklab<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Oklch<T>> for Luma<S, T>where S: LumaStandard, Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Oklch<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Oklch<T>> for Rgb<S, T>where Oklab<T>: FromColorUnclamped<Oklch<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Oklch<T>> for Hsl<S, T>where Rgb<S, T>: FromColorUnclamped<Oklch<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Oklch<T>> for Hsv<S, T>where Rgb<S, T>: FromColorUnclamped<Oklch<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Oklch<T>> for Hwb<S, T>where Hsv<S, T>: FromColorUnclamped<Oklch<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Rgb<S, T>where S: RgbStandard, S::TransferFn: FromLinear<T, T>, <S::Space as RgbSpace>::Primaries: Primaries<T::Scalar>, <S::Space as RgbSpace>::WhitePoint: WhitePoint<T::Scalar>, T: Arithmetics + FromScalar, T::Scalar: Real + Recip + IsValidDivisor<Mask = bool> + Arithmetics + Clone + FromScalar<Scalar = T::Scalar>, Yxy<Any, T::Scalar>: IntoColorUnclamped<Xyz<Any, T::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<Self>,
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<Self>,
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<Self>,
impl<S, T> FromColorUnclamped<Xyz<<S as LumaStandard>::WhitePoint, T>> for Luma<S, T>where S: LumaStandard, S::TransferFn: FromLinear<T, 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<Self>,
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<Self>,
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<Self>,
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<Self>,
impl<S, T> FromColorUnclamped<Yxy<<S as LumaStandard>::WhitePoint, T>> for Luma<S, T>where S: LumaStandard, S::TransferFn: FromLinear<T, T>,
impl<S, T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Luma<S, T>where _C: IntoColorUnclamped<Self>,
impl<S, T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Rgb<S, T>where _C: IntoColorUnclamped<Self>,
impl<S, T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Hsl<S, T>where _C: IntoColorUnclamped<Self>,
impl<S, T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Hsv<S, T>where _C: IntoColorUnclamped<Self>,
impl<S, T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Hwb<S, T>where _C: IntoColorUnclamped<Self>,
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<Self>,
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<Self>,
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<Self>,
impl<S, T, _S> FromColorUnclamped<Rgb<_S, T>> for Luma<S, T>where _S: RgbStandard, _S::Space: RgbSpace<WhitePoint = <S as LumaStandard>::WhitePoint>, S: LumaStandard, Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Rgb<_S, T>> + IntoColorUnclamped<Self>,
impl<S, T, _S> FromColorUnclamped<Hsl<_S, T>> for Luma<S, T>where _S: RgbStandard, _S::Space: RgbSpace<WhitePoint = <S as LumaStandard>::WhitePoint>, S: LumaStandard, Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Hsl<_S, T>> + IntoColorUnclamped<Self>,
impl<S, T, _S> FromColorUnclamped<Hsv<_S, T>> for Luma<S, T>where _S: RgbStandard, _S::Space: RgbSpace<WhitePoint = <S as LumaStandard>::WhitePoint>, S: LumaStandard, Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Hsv<_S, T>> + IntoColorUnclamped<Self>,
impl<S, T, _S> FromColorUnclamped<Hwb<_S, T>> for Luma<S, T>where _S: RgbStandard, _S::Space: RgbSpace<WhitePoint = <S as LumaStandard>::WhitePoint>, S: LumaStandard, Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Hwb<_S, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Hsluv<D65, T>> for Okhsl<T>where D65: WhitePoint<T>, Oklab<T>: FromColorUnclamped<Hsluv<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Hsluv<D65, T>> for Okhsv<T>where D65: WhitePoint<T>, Oklab<T>: FromColorUnclamped<Hsluv<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Hsluv<D65, T>> for Okhwb<T>where D65: WhitePoint<T>, Okhsv<T>: FromColorUnclamped<Hsluv<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Hsluv<D65, T>> for Oklab<T>where D65: WhitePoint<T>, Xyz<D65, T>: FromColorUnclamped<Hsluv<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Hsluv<D65, T>> for Oklch<T>where D65: WhitePoint<T>, Oklab<T>: FromColorUnclamped<Hsluv<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Lab<D65, T>> for Okhsl<T>where D65: WhitePoint<T>, Oklab<T>: FromColorUnclamped<Lab<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Lab<D65, T>> for Okhsv<T>where D65: WhitePoint<T>, Oklab<T>: FromColorUnclamped<Lab<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Lab<D65, T>> for Okhwb<T>where D65: WhitePoint<T>, Okhsv<T>: FromColorUnclamped<Lab<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Lab<D65, T>> for Oklab<T>where D65: WhitePoint<T>, Xyz<D65, T>: FromColorUnclamped<Lab<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Lab<D65, T>> for Oklch<T>where D65: WhitePoint<T>, Oklab<T>: FromColorUnclamped<Lab<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Lch<D65, T>> for Okhsl<T>where D65: WhitePoint<T>, Oklab<T>: FromColorUnclamped<Lch<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Lch<D65, T>> for Okhsv<T>where D65: WhitePoint<T>, Oklab<T>: FromColorUnclamped<Lch<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Lch<D65, T>> for Okhwb<T>where D65: WhitePoint<T>, Okhsv<T>: FromColorUnclamped<Lch<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Lch<D65, T>> for Oklab<T>where D65: WhitePoint<T>, Xyz<D65, T>: FromColorUnclamped<Lch<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Lch<D65, T>> for Oklch<T>where D65: WhitePoint<T>, Oklab<T>: FromColorUnclamped<Lch<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Lchuv<D65, T>> for Okhsl<T>where D65: WhitePoint<T>, Oklab<T>: FromColorUnclamped<Lchuv<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Lchuv<D65, T>> for Okhsv<T>where D65: WhitePoint<T>, Oklab<T>: FromColorUnclamped<Lchuv<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Lchuv<D65, T>> for Okhwb<T>where D65: WhitePoint<T>, Okhsv<T>: FromColorUnclamped<Lchuv<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Lchuv<D65, T>> for Oklab<T>where D65: WhitePoint<T>, Xyz<D65, T>: FromColorUnclamped<Lchuv<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Lchuv<D65, T>> for Oklch<T>where D65: WhitePoint<T>, Oklab<T>: FromColorUnclamped<Lchuv<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Luv<D65, T>> for Okhsl<T>where D65: WhitePoint<T>, Oklab<T>: FromColorUnclamped<Luv<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Luv<D65, T>> for Okhsv<T>where D65: WhitePoint<T>, Oklab<T>: FromColorUnclamped<Luv<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Luv<D65, T>> for Okhwb<T>where D65: WhitePoint<T>, Okhsv<T>: FromColorUnclamped<Luv<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Luv<D65, T>> for Oklab<T>where D65: WhitePoint<T>, Xyz<D65, T>: FromColorUnclamped<Luv<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Luv<D65, T>> for Oklch<T>where D65: WhitePoint<T>, Oklab<T>: FromColorUnclamped<Luv<D65, T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Okhsl<T>> for Okhsl<T>where Oklab<T>: FromColorUnclamped<Okhsl<T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Okhsl<T>> for Okhsv<T>where Oklab<T>: FromColorUnclamped<Okhsl<T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Okhsl<T>> for Okhwb<T>where Okhsv<T>: FromColorUnclamped<Okhsl<T>> + IntoColorUnclamped<Self>,
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<LinSrgb<T>>,
See
See okhsl_to_srgb
impl<T> FromColorUnclamped<Okhsl<T>> for Oklch<T>where Oklab<T>: FromColorUnclamped<Okhsl<T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Okhsv<T>> for Okhsl<T>where Oklab<T>: FromColorUnclamped<Okhsv<T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Okhsv<T>> for Okhsv<T>where Oklab<T>: FromColorUnclamped<Okhsv<T>> + IntoColorUnclamped<Self>,
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<LinSrgb<T>>,
impl<T> FromColorUnclamped<Okhsv<T>> for Oklch<T>where Oklab<T>: FromColorUnclamped<Okhsv<T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Okhwb<T>> for Okhsl<T>where Oklab<T>: FromColorUnclamped<Okhwb<T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Okhwb<T>> for Okhsv<T>where T: One + Zero + IsValidDivisor + Arithmetics, T::Mask: LazySelect<T>,
impl<T> FromColorUnclamped<Okhwb<T>> for Oklab<T>where Okhsv<T>: FromColorUnclamped<Okhwb<T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Okhwb<T>> for Oklch<T>where Oklab<T>: FromColorUnclamped<Okhwb<T>> + IntoColorUnclamped<Self>,
impl<T> FromColorUnclamped<Oklab<T>> for Okhsl<T>where T: Real + One + Zero + Arithmetics + Powi + Sqrt + Hypot + MinMax + Cbrt + IsValidDivisor<Mask = bool> + HasBoolMask<Mask = bool> + PartialOrd + Clone, Oklab<T>: GetHue<Hue = OklabHue<T>> + IntoColorUnclamped<LinSrgb<T>>,
See
See srgb_to_okhsl
impl<T> FromColorUnclamped<Oklab<T>> for Okhsv<T>where T: Real + MinMax + Clone + Powi + Sqrt + Cbrt + Arithmetics + Trigonometry + Zero + Hypot + One + IsValidDivisor<Mask = bool> + HasBoolMask<Mask = bool> + PartialOrd, Oklab<T>: GetHue<Hue = OklabHue<T>> + IntoColorUnclamped<LinSrgb<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.