Struct oxipng::png::PngData
[−]
[src]
pub struct PngData {
pub idat_data: Vec<u8>,
pub ihdr_data: IhdrData,
pub raw_data: Vec<u8>,
pub palette: Option<Vec<u8>>,
pub transparency_pixel: Option<Vec<u8>>,
pub transparency_palette: Option<Vec<u8>>,
pub aux_headers: HashMap<String, Vec<u8>>,
}Contains all data relevant to a PNG image
Fields
idat_data | The filtered and compressed data of the IDAT chunk |
ihdr_data | The headers stored in the IHDR chunk |
raw_data | The uncompressed, optionally filtered data from the IDAT chunk |
palette | The palette containing colors used in an Indexed image Contains 3 bytes per color (R+G+B), up to 768 |
transparency_pixel | The pixel value that should be rendered as transparent |
transparency_palette | A map of how transparent each color in the palette should be |
aux_headers | All non-critical headers from the PNG are stored here |
Methods
impl PngData
fn new(filepath: &Path, fix_errors: bool) -> Result<PngData, String>
Create a new PngData struct by opening a file
fn channels_per_pixel(&self) -> u8
Return the number of channels in the image, based on color type
fn output(&self) -> Vec<u8>
Format the PngData struct into a valid PNG bytestream
fn scan_lines(&self) -> ScanLines
Return an iterator over the scanlines of the image
fn unfilter_image(&self) -> Vec<u8>
Reverse all filters applied on the image, returning an unfiltered IDAT bytestream
fn filter_image(&self, filter: u8) -> Vec<u8>
Apply the specified filter type to all rows in the image 0: None 1: Sub 2: Up 3: Average 4: Paeth 5: All (heuristically pick the best filter for each line)
fn reduce_bit_depth(&mut self) -> bool
Attempt to reduce the bit depth of the image Returns true if the bit depth was reduced, false otherwise
fn reduce_palette(&mut self) -> bool
Attempt to reduce the number of colors in the palette Returns true if the palette was reduced, false otherwise
fn reduce_color_type(&mut self) -> bool
Attempt to reduce the color type of the image Returns true if the color type was reduced, false otherwise
fn change_interlacing(&mut self, interlace: u8) -> bool
Convert the image to the specified interlacing type
Returns true if the interlacing was changed, false otherwise
The interlace parameter specifies the new interlacing mode
Assumes that the data has already been de-filtered