Struct png::Decoder [−][src]
pub struct Decoder<R: Read> { /* fields omitted */ }
Expand description
PNG Decoder
Implementations
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());
Reads all meta data until the first IDAT chunk
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.