Struct imagequant::QuantizationResult
source · pub struct QuantizationResult { /* private fields */ }
Expand description
Remapping step, computed from Attributes::quantize()
Implementations§
source§impl QuantizationResult
impl QuantizationResult
sourcepub fn set_dithering_level(&mut self, value: f32) -> Result<(), Error>
pub fn set_dithering_level(&mut self, value: f32) -> Result<(), Error>
Set to 1.0 to get nice smooth image
sourcepub fn set_output_gamma(&mut self, value: f64) -> Result<(), Error>
pub fn set_output_gamma(&mut self, value: f64) -> Result<(), Error>
The default is sRGB gamma (~1/2.2)
sourcepub fn output_gamma(&self) -> f64
pub fn output_gamma(&self) -> f64
Approximate gamma correction value used for the output
Colors are converted from input gamma to this gamma
sourcepub fn quantization_quality(&self) -> Option<u8>
pub fn quantization_quality(&self) -> Option<u8>
Number 0-100 guessing how nice the input image will look if remapped to this palette
sourcepub fn quantization_error(&self) -> Option<f64>
pub fn quantization_error(&self) -> Option<f64>
Approximate mean square error of the palette
sourcepub fn remapping_error(&self) -> Option<f64>
pub fn remapping_error(&self) -> Option<f64>
Approximate mean square error of the palette used for the most recent remapping
sourcepub fn remapping_quality(&self) -> Option<u8>
pub fn remapping_quality(&self) -> Option<u8>
Palette remapping error mapped back to 0-100 scale, same as the scale in Attributes::set_quality()
sourcepub fn palette(&mut self) -> &[RGBA]
pub fn palette(&mut self) -> &[RGBA]
The final palette
It’s slighly better if you get palette from the remapped()
call instead
sourcepub fn set_progress_callback<F: Fn(f32) -> ControlFlow + Sync + Send + 'static>(
&mut self,
callback: F
)
pub fn set_progress_callback<F: Fn(f32) -> ControlFlow + Sync + Send + 'static>( &mut self, callback: F )
Callback called at various point of processing, which gets percentage of progress done,
and can return ControlFlow::Break
to abort further processing
sourcepub fn remapped(
&mut self,
image: &mut Image<'_>
) -> Result<(Vec<RGBA>, Vec<u8>), Error>
pub fn remapped( &mut self, image: &mut Image<'_> ) -> Result<(Vec<RGBA>, Vec<u8>), Error>
Remap image into a palette + indices.
Returns the palette and a 1-byte-per-pixel uncompressed bitmap
sourcepub fn remap_into_vec(
&mut self,
image: &mut Image<'_>,
buf: &mut Vec<u8>
) -> Result<Vec<RGBA>, Error>
pub fn remap_into_vec( &mut self, image: &mut Image<'_>, buf: &mut Vec<u8> ) -> Result<Vec<RGBA>, Error>
Remap image into an existing buffer. Use remapped()
if you don’t have a pre-allocated buffer to reuse.
Writes 1-byte-per-pixel uncompressed bitmap into the Vec
.
Returns the palette.
sourcepub fn remap_into(
&mut self,
image: &mut Image<'_>,
output_buf: &mut [MaybeUninit<u8>]
) -> Result<(), Error>
pub fn remap_into( &mut self, image: &mut Image<'_>, output_buf: &mut [MaybeUninit<u8>] ) -> Result<(), Error>
Remap image into an existing buffer.
This is a low-level call for use when existing memory has to be reused. Use remapped()
or remap_into_vec()
if possible.
Writes 1-byte-per-pixel uncompressed bitmap into the pre-allocated buffer.
You should call palette()
after this call, but not before it,
because remapping refines the palette.
sourcepub fn palette_vec(&mut self) -> Vec<RGBA>
pub fn palette_vec(&mut self) -> Vec<RGBA>
The final palette, copied.
It’s slighly better if you get palette from the remapped()
call instead
sourcepub fn palette_len(&mut self) -> usize
pub fn palette_len(&mut self) -> usize
Expected length of the palette
Reads the length without finalizing the colors
Trait Implementations§
source§impl Clone for QuantizationResult
impl Clone for QuantizationResult
Auto Trait Implementations§
impl Freeze for QuantizationResult
impl !RefUnwindSafe for QuantizationResult
impl Send for QuantizationResult
impl Sync for QuantizationResult
impl Unpin for QuantizationResult
impl !UnwindSafe for QuantizationResult
Blanket Implementations§
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<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 more