Crate png

Source
Expand description

§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

    // 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(); // Save

Modules§

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