Skip to main content

ResizePlan

Struct ResizePlan 

Source
pub struct ResizePlan { /* private fields */ }
Expand description

A validated, reusable full-canvas RGBA resize operation.

Build one plan per source canvas, then apply it to each composited frame of an animation. Self::transform_frame preserves the frame duration.

Implementations§

Source§

impl ResizePlan

Source

pub fn new( source: CanvasSize, options: ResizeOptions, ) -> Result<Self, ResizeError>

Validates resize options and derives the destination canvas.

The destination preserves the source aspect ratio, fits within the configured maximum, and never crops or pads pixels.

Source

pub const fn source(&self) -> CanvasSize

Returns the source canvas expected by this plan.

Source

pub const fn destination(&self) -> CanvasSize

Returns the destination canvas produced by this plan.

Source

pub const fn is_noop(&self) -> bool

Returns whether the plan preserves the source dimensions.

Source

pub fn transform_rgba(&self, source_rgba: &[u8]) -> Result<Vec<u8>, ResizeError>

One-shot convenience API for one complete, tightly packed RGBA canvas.

It allocates a workspace and output buffer for this call. For sequential animation frames, create one ResizeWorkspace with Self::workspace and reuse it instead.

Source

pub fn workspace(&self) -> Result<ResizeWorkspace, ResizeError>

Creates reusable resize state for sequential animation frames.

Reuse this workspace for the full animation to retain its resizer and destination buffer between frames.

Source

pub fn transform_frame( &self, frame: AnimationFrame, ) -> Result<AnimationFrame, ResizeError>

One-shot convenience API that transforms a decoded frame and preserves its duration.

It allocates for every call. For animation processing, prefer a reused ResizeWorkspace and construct the output frame at the call site.

Trait Implementations§

Source§

impl Clone for ResizePlan

Source§

fn clone(&self) -> ResizePlan

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for ResizePlan

Source§

impl Debug for ResizePlan

Source§

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

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

impl Eq for ResizePlan

Source§

impl PartialEq for ResizePlan

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for ResizePlan

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.