Struct png::Decoder [−][src]
pub struct Decoder<R: Read> { /* fields omitted */ }
Expand description
PNG Decoder
Implementations
Create a new decoder configuration with custom limits.
Limit resource usage.
Note that your allocations, e.g. when reading into a pre-allocated buffer, are NOT considered part of the limits. Nevertheless, required intermediate buffers such as for singular lines is checked against the limit.
Note that this is a best-effort basis.
use std::fs::File; use png::{Decoder, Limits}; // This image is 32×32, 1bit per pixel. The reader buffers one row which requires 4 bytes. let mut limits = Limits::default(); limits.bytes = 3; 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.