pub struct Extractor<'a> { /* private fields */ }Expand description
A utility for extracting accent color from an image.
This structs acts as a temporary state container during the extraction process and provides static methods for executing the extraction.
There are multiple extraction variants, mainly with
(Extractor::extract) and without (Extractor::extract_cached) using
the Cache. It is highly recommended using the Cache. High
resolution images can take a while to just open, so thanks to the Cache
the result for repeated extraction will be pretty much instant.
You can also use variant with progress reporting
(Extractor::extract_with_progress and
Extractor::extract_cached_with_progress), which is useful for having
a loading screen, for example.
Implementations§
Source§impl<'a> Extractor<'a>
impl<'a> Extractor<'a>
Sourcepub fn extract<P>(
path: P,
config: &'a ExtractionConfig,
) -> Result<Option<(u8, u8, u8)>, Error>
pub fn extract<P>( path: P, config: &'a ExtractionConfig, ) -> Result<Option<(u8, u8, u8)>, Error>
Extracts the accent color from the image at the given path.
When no sufficient color is found, it returns None.
Sourcepub fn extract_cached<P>(
path: P,
config: &'a ExtractionConfig,
cache_path: Option<&Path>,
) -> Result<Option<(u8, u8, u8)>, Error>
pub fn extract_cached<P>( path: P, config: &'a ExtractionConfig, cache_path: Option<&Path>, ) -> Result<Option<(u8, u8, u8)>, Error>
Extracts the accent color from the image at the given path and uses the cache.
It checks if the cache already contains the color for the given image, otherwise it saves the extracted color into the cache.
When no sufficient color is found, it returns None.
Sourcepub fn extract_with_progress<P, F>(
path: P,
config: &'a ExtractionConfig,
progress_callback: F,
) -> Result<Option<(u8, u8, u8)>, Error>
pub fn extract_with_progress<P, F>( path: P, config: &'a ExtractionConfig, progress_callback: F, ) -> Result<Option<(u8, u8, u8)>, Error>
Extracts the accent color from the image at the given path with the progress reporting.
When no sufficient color is found, it returns None.
Sourcepub fn extract_cached_with_progress<P, F>(
path: P,
config: &'a ExtractionConfig,
cache_path: Option<&Path>,
progress_callback: F,
) -> Result<Option<(u8, u8, u8)>, Error>
pub fn extract_cached_with_progress<P, F>( path: P, config: &'a ExtractionConfig, cache_path: Option<&Path>, progress_callback: F, ) -> Result<Option<(u8, u8, u8)>, Error>
Extracts the accent color from the image at the given path with the progress reporting and uses the cache.
It checks if the cache already contains the color for the given image, otherwise it saves the extracted color into the cache.
When no sufficient color is found, it returns None.
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for Extractor<'a>
impl<'a> RefUnwindSafe for Extractor<'a>
impl<'a> Send for Extractor<'a>
impl<'a> Sync for Extractor<'a>
impl<'a> Unpin for Extractor<'a>
impl<'a> UnsafeUnpin for Extractor<'a>
impl<'a> UnwindSafe for Extractor<'a>
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other into Self, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read more