use crate::{consts, encode::Error as EncoderError, encoder::Enc, zlib};
#[derive(Debug)]
pub(crate) struct ImageData {
pub(crate) data: Vec<u8>,
}
impl ImageData {
pub(crate) fn write(&self, enc: &mut Enc) -> Result<(), EncoderError> {
let mut zlib = Vec::new();
zlib::compress(&mut zlib, self.data.as_slice(), enc.level());
enc.prepare(zlib.len(), consts::IMAGE_DATA);
enc.raw(&zlib);
enc.write_crc();
Ok(())
}
pub(crate) fn with_data(data: Vec<u8>) -> ImageData {
ImageData { data }
}
}