Crate png_pong[−][src]
Expand description
A library for decoding and encoding PNG images and APNG animations.
Getting Started
Add the following to your Cargo.toml
.
[dependencies.png_pong]
version = "0.7"
Example
// Saving raster as a PNG file let raster = png_pong::PngRaster::Rgba8(pix::Raster::with_pixels(1, 1, &[ pix::rgb::SRgba8::new(0, 0, 0, 0)][..] )); let mut out_data = Vec::new(); let mut encoder = png_pong::Encoder::new(&mut out_data).into_step_enc(); let step = png_pong::Step{ raster, delay: 0 }; encoder.encode(&step).expect("Failed to add frame"); std::fs::write("graphic.png", out_data).expect("Failed to save image"); // Loading PNG file into a Raster let data = std::fs::read("graphic.png").expect("Failed to open PNG"); let data = std::io::Cursor::new(data); let decoder = png_pong::Decoder::new(data).expect("Not PNG").into_steps(); let png_pong::Step { raster, delay } = decoder .last() .expect("No frames in PNG") .expect("PNG parsing error");
Modules
chunk | Low-level PNG API |
decode | PNG file decoding |
encode | PNG file encoding |
Structs
Decoder | PNG file decoder |
Encoder | PNG file encoder |
Step | A Frame |
Enums
PngRaster | A Raster of one of the PNG types (all are sRGB gamma). PNGs with less than 8 bits per channel are scaled up to 8 bits per channel. |