pub struct AnimationEncoder { /* private fields */ }Expand description
Sequential animated-WebP encoder for full-canvas RGBA frames.
Self::add_frame accepts frames in presentation order. It converts each
frame’s duration to the cumulative millisecond timestamp required by WebP,
then Self::finish writes the final timestamp needed to retain the last
frame’s duration.
Implementations§
Source§impl AnimationEncoder
impl AnimationEncoder
Sourcepub fn new(
canvas: CanvasSize,
options: AnimationEncoderOptions,
) -> Result<Self, EncodeError>
pub fn new( canvas: CanvasSize, options: AnimationEncoderOptions, ) -> Result<Self, EncodeError>
Creates an encoder for full-canvas RGBA frames of the given dimensions.
Frames must be added in presentation order and must use exactly
canvas.width * canvas.height * 4 bytes. At least one frame is required
before Self::finish can produce output.
Sourcepub const fn canvas(&self) -> CanvasSize
pub const fn canvas(&self) -> CanvasSize
Returns the canvas dimensions required by every frame.
Sourcepub const fn frame_count(&self) -> u32
pub const fn frame_count(&self) -> u32
Returns the number of frames accepted so far.
Sourcepub fn add_frame(&mut self, frame: &AnimationFrame) -> Result<(), EncodeError>
pub fn add_frame(&mut self, frame: &AnimationFrame) -> Result<(), EncodeError>
Adds one full-canvas frame in presentation order.
Sourcepub fn add_rgba(
&mut self,
rgba: &[u8],
duration: Duration,
) -> Result<(), EncodeError>
pub fn add_rgba( &mut self, rgba: &[u8], duration: Duration, ) -> Result<(), EncodeError>
Adds one full-canvas RGBA frame without allocating an AnimationFrame.