use crate::model::*; use ::image::*; // TODO: Deside on ::image::FilterType; // TODO: Think about size; Hard Code?? const RESIZE: u32 = 256; pub fn generate_preview(input: &[u8], format: TextureFormat) -> ImageResult> { // Yes, this guesses the format :D // Also the resize function takes a maximum size and preservs the ratio. let img = ::image::load_from_memory(input)?.resize(RESIZE, RESIZE, ::image::FilterType::Lanczos3); let mut out: Vec = Vec::new(); match format { TextureFormat::JPEG => img.write_to(&mut out, ImageOutputFormat::JPEG(95))?, TextureFormat::PNG => img.write_to(&mut out, ImageOutputFormat::PNG)?, } Ok(out) }