Quality

Enum Quality 

Source
#[non_exhaustive]
pub enum Quality { ApproxJpegli(f32), ApproxMozjpeg(u8), ApproxSsim2(f32), ApproxButteraugli(f32), }
Expand description

Quality/compression setting.

All variants map to internal quality through empirical lookup tables. Results vary by image - these are rough approximations, not guarantees.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

ApproxJpegli(f32)

Approximate jpegli quality scale (this is a fork, not exact jpegli). Range: 0.0–100.0, where ~90 is visually lossless for most images.

§

ApproxMozjpeg(u8)

Approximate mozjpeg quality behavior. Range: 0–100. Maps to quality producing similar file sizes.

§

ApproxSsim2(f32)

Approximate SSIMULACRA2 score target. Range: 0–100 (higher = better). 90+ is roughly visually lossless.

§

ApproxButteraugli(f32)

Approximate Butteraugli distance target. Range: 0.0+ (lower = better). <1.0 excellent, <3.0 good.

Implementations§

Source§

impl Quality

Source

pub fn to_internal(&self) -> f32

Convert to internal quality value (0.0-100.0 scale).

Source

pub fn to_distance(&self) -> f32

Convert to butteraugli distance.

Uses the exact same formula as C++ jpegli’s jpegli_quality_to_distance.

Trait Implementations§

Source§

impl Clone for Quality

Source§

fn clone(&self) -> Quality

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Quality

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Quality

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl From<f32> for Quality

Source§

fn from(q: f32) -> Self

Converts to this type from the input type.
Source§

impl From<i32> for Quality

Source§

fn from(q: i32) -> Self

Converts to this type from the input type.
Source§

impl From<u8> for Quality

Source§

fn from(q: u8) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for Quality

Source§

fn eq(&self, other: &Quality) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Quality

Source§

impl StructuralPartialEq for Quality

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.