[−][src]Crate png
PNG encoder and decoder
This crate contains a PNG encoder and decoder. It supports reading of single lines or whole frames.
The decoder
The most important types for decoding purposes are Decoder and
Reader. They both wrap a std::io::Read.
Decoder serves as a builder for Reader. Calling Decoder::read_info reads from the Read until the
image data is reached.
Using the decoder
use std::fs::File; // The decoder is a build for reader and can be used to set various decoding options // via `Transformations`. The default output transformation is `Transformations::EXPAND // | Transformations::STRIP_ALPHA`. let decoder = png::Decoder::new(File::open("tests/pngsuite/basi0g01.png").unwrap()); let (info, mut reader) = decoder.read_info().unwrap(); // Allocate the output buffer. let mut buf = vec![0; info.buffer_size()]; // Read the next frame. Currently this function should only called once. // The default options reader.next_frame(&mut buf).unwrap();
Encoder
Using the encoder
ⓘThis example is not tested
    // For reading and opening files
    use std::path::Path;
    use std::fs::File;
    use std::io::BufWriter;
    // To use encoder.set()
    use png::HasParameters;
    let path = Path::new(r"/path/to/image.png");
    let file = File::create(path).unwrap();
    let ref mut w = BufWriter::new(file);
    let mut encoder = png::Encoder::new(w, 2, 1); // Width is 2 pixels and height is 1.
    encoder.set(png::ColorType::RGBA).set(png::BitDepth::Eight);
     let mut writer = encoder.write_header().unwrap();
    let data = [255, 0, 0, 255, 0, 0, 0, 255]; // An array containing a RGBA sequence. First pixel is red and second pixel is black.
    writer.write_image_data(&data).unwrap(); // SaveModules
| chunk | Chunk types and functions  | 
Structs
| AnimationControl | Animation control information  | 
| Decoder | PNG Decoder  | 
| Encoder | PNG Encoder  | 
| FrameControl | Frame control information  | 
| Info | PNG info struct  | 
| Limits | |
| OutputInfo | Output info  | 
| PixelDimensions | Pixel dimensions information  | 
| Reader | PNG reader (mostly high-level interface)  | 
| StreamingDecoder | PNG StreamingDecoder (low-level interface)  | 
| Transformations | Output transformations  | 
| Writer | PNG writer  | 
Enums
| BitDepth | Bit depth of the png file  | 
| ColorType | |
| Compression | |
| Decoded | Result of the decoding process  | 
| DecodingError | |
| EncodingError | |
| FilterType | |
| Unit | Physical unit of the pixel dimensions  | 
Traits
| HasParameters | Object has parameters  | 
| Parameter | Configuration parameter trait  |