Crate pwgraster [] [src]

PWG Raster

Decoding of Printer Working Group Candidate Standard 5102.4-2012 raster images.

Decoding multiple pages

next_page() will call a closure with a page structure that allows access to the header and page data. It will return Ok(None) when there are no more pages.

use std::fs::File;
use std::io::BufReader;
use pwgraster::PWGReader;
let infile = File::open("./color.jpg-4x6-srgb-8-600dpi.pwg")
                 .expect("Failed to open input");
let mut pwg = PWGReader::new(BufReader::new(infile), true).unwrap();
while pwg.next_page(|page| {
        let width = page.header().Width().unwrap();
        let height = page.header().Height().unwrap();
        println!("Page dimensions {}x{}", width, height);
        let mut buf = Vec::with_capacity(page.header().image_size_bytes().unwrap());
        println!("Reading page");
        page.unpack(&mut buf).unwrap();
        println!("Page read");
        // Do something with image data
        Ok(())
    }).unwrap().is_some() {}

Modules

types

Data types used in the PWG header

Structs

Error
PWGPage

Returned by PWGReader::next_page(). Allows access to the page header and image data.

PWGReader

Top-level structure over a reader that returns decoded pages

PageHeader

Accessors into a slice containing a PWG page header

Enums

ErrorKind
StreamError

Constants

PWG_HEADER_SIZE

Size of the fixed-length PWG header for each page

PWG_SYNC_WORD

4 bytes found at the beginning of PWG data

Functions

unpack_page

Stream PWG image data from a reader to a writer