Struct image::codecs::png::ApngDecoder
source · pub struct ApngDecoder<R: Read> {
inner: PngDecoder<R>,
current: Option<RgbaImage>,
previous: Option<RgbaImage>,
dispose: DisposeOp,
remaining: u32,
has_thumbnail: bool,
}
Expand description
An AnimationDecoder
adapter of PngDecoder
.
See PngDecoder::apng
for more information.
Fields§
§inner: PngDecoder<R>
§current: Option<RgbaImage>
The current output buffer.
previous: Option<RgbaImage>
The previous output buffer, used for dispose op previous.
dispose: DisposeOp
The dispose op of the current frame.
remaining: u32
The number of image still expected to be able to load.
has_thumbnail: bool
The next (first) image is the thumbnail.
Implementations§
source§impl<R: Read> ApngDecoder<R>
impl<R: Read> ApngDecoder<R>
fn new(inner: PngDecoder<R>) -> Self
sourcefn mix_next_frame(&mut self) -> Result<Option<&RgbaImage>, ImageError>
fn mix_next_frame(&mut self) -> Result<Option<&RgbaImage>, ImageError>
Decode one subframe and overlay it on the canvas.
fn animatable_color_type(&self) -> Result<(), ImageError>
Trait Implementations§
source§impl<'a, R: Read + 'a> AnimationDecoder<'a> for ApngDecoder<R>
impl<'a, R: Read + 'a> AnimationDecoder<'a> for ApngDecoder<R>
source§fn into_frames(self) -> Frames<'a> ⓘ
fn into_frames(self) -> Frames<'a> ⓘ
Consume the decoder producing a series of frames.
Auto Trait Implementations§
impl<R> Freeze for ApngDecoder<R>where
R: Freeze,
impl<R> !RefUnwindSafe for ApngDecoder<R>
impl<R> Send for ApngDecoder<R>where
R: Send,
impl<R> Sync for ApngDecoder<R>where
R: Sync,
impl<R> Unpin for ApngDecoder<R>where
R: Unpin,
impl<R> !UnwindSafe for ApngDecoder<R>
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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