pub struct GifDecoder<S>where
S: Source,{ /* private fields */ }Expand description
Decodes a GIF stream.
Decoder presents the first frame; GifDecoder::next_frame walks the
rest. See the crate docs for why the split is where it is.
Implementations§
Source§impl<S> GifDecoder<S>where
S: Source,
impl<S> GifDecoder<S>where
S: Source,
Sourcepub fn new(source: S, limits: Limits) -> Result<GifDecoder<S>, PixelsError>
pub fn new(source: S, limits: Limits) -> Result<GifDecoder<S>, PixelsError>
Parse the header and logical screen descriptor, reading nothing more.
§Errors
Returns PixelsError::Malformed for a bad signature or screen
descriptor, or PixelsError::LimitExceeded if the canvas exceeds
limits.
Sourcepub fn next_frame(&mut self) -> Result<Option<Frame>, PixelsError>
pub fn next_frame(&mut self) -> Result<Option<Frame>, PixelsError>
Decode the next frame, compositing it onto the canvas.
Returns None once the stream’s trailer is reached. Each frame carries
the whole canvas, because that is what a viewer draws — a frame’s own
rectangle is meaningless without what it was composited onto.
§Errors
Returns PixelsError::Malformed for a malformed block or a frame
that does not fit its canvas, or PixelsError::Io on source failure.
Trait Implementations§
Source§impl<S> Debug for GifDecoder<S>
impl<S> Debug for GifDecoder<S>
Source§impl<S> Decoder for GifDecoder<S>
impl<S> Decoder for GifDecoder<S>
Source§fn source_info(&self) -> SourceInfo
fn source_info(&self) -> SourceInfo
Palette, the first frame’s interlace, the screen’s background colour and comment extensions. XMP is not read.
Source§fn descriptor(&self) -> ImageDescriptor
fn descriptor(&self) -> ImageDescriptor
Source§fn capability(&self) -> DecodeCapability
fn capability(&self) -> DecodeCapability
Source§fn animation(&self) -> Option<Animation>
fn animation(&self) -> Option<Animation>
Source§fn read_row(&mut self, out: &mut [u8]) -> Result<(), PixelsError>
fn read_row(&mut self, out: &mut [u8]) -> Result<(), PixelsError>
out. Read moreSource§fn orientation(&self) -> Orientation
fn orientation(&self) -> Orientation
Source§fn icc_profile(&self) -> Option<&[u8]>
fn icc_profile(&self) -> Option<&[u8]>
Source§fn exif(&self) -> Option<&[u8]>
fn exif(&self) -> Option<&[u8]>
II or MM), without the Exif\0\0
identifier a JPEG wraps it in. Read moreSource§fn xmp(&self) -> Option<&[u8]>
fn xmp(&self) -> Option<&[u8]>
<?xpacket or <x:xmpmeta. Read moreSource§fn read_region(
&mut self,
region: Region,
out: &mut TileMut<'_>,
) -> Result<(), PixelsError>
fn read_region( &mut self, region: Region, out: &mut TileMut<'_>, ) -> Result<(), PixelsError>
out. Read moreSource§fn reduced_descriptor(&self, target: (u32, u32)) -> Option<ImageDescriptor>
fn reduced_descriptor(&self, target: (u32, u32)) -> Option<ImageDescriptor>
target or larger, when
the format lets it reach that size more cheaply than a full decode. Read more