pub struct Decoder<R: Read> { /* private fields */ }
Expand description
PNG Decoder
Implementations§
source§impl<R: Read> Decoder<R>
impl<R: Read> Decoder<R>
pub fn new(r: R) -> Decoder<R>
pub fn new_with_limits(r: R, limits: Limits) -> Decoder<R>
sourcepub fn set_limits(&mut self, limits: Limits)
pub fn set_limits(&mut self, limits: Limits)
Limit resource usage
use std::fs::File;
use png::{Decoder, Limits};
// This image is 32x32 pixels, so the deocder will allocate more than four bytes
let mut limits = Limits::default();
limits.bytes = 4;
let mut decoder = Decoder::new_with_limits(File::open("tests/pngsuite/basi0g01.png").unwrap(), limits);
assert!(decoder.read_info().is_err());
// This image is 32x32 pixels, so the decoder will allocate less than 10Kib
let mut limits = Limits::default();
limits.bytes = 10*1024;
let mut decoder = Decoder::new_with_limits(File::open("tests/pngsuite/basi0g01.png").unwrap(), limits);
assert!(decoder.read_info().is_ok());
sourcepub fn read_info(self) -> Result<(OutputInfo, Reader<R>), DecodingError>
pub fn read_info(self) -> Result<(OutputInfo, Reader<R>), DecodingError>
Reads all meta data until the first IDAT chunk
sourcepub fn set_transformations(&mut self, transform: Transformations)
pub fn set_transformations(&mut self, transform: Transformations)
Set the allowed and performed transformations.
A transformation is a pre-processing on the raw image data modifying content or encoding. Many options have an impact on memory or CPU usage during decoding.
Auto Trait Implementations§
impl<R> Freeze for Decoder<R>where
R: Freeze,
impl<R> RefUnwindSafe for Decoder<R>where
R: RefUnwindSafe,
impl<R> Send for Decoder<R>where
R: Send,
impl<R> Sync for Decoder<R>where
R: Sync,
impl<R> Unpin for Decoder<R>where
R: Unpin,
impl<R> UnwindSafe for Decoder<R>where
R: UnwindSafe,
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