Struct png::Decoder

source · []
pub struct Decoder<R: Read> { /* private fields */ }
Expand description

PNG Decoder

Implementations

Create a new decoder configuration with default limits.

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.

Set the decoder to ignore all text chunks while parsing.

eg.

use std::fs::File;
use png::Decoder;
let mut decoder = Decoder::new(File::open("tests/pngsuite/basi0g01.png").unwrap());
decoder.set_ignore_text_chunk(true);
assert!(decoder.read_info().is_ok());

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.