1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
use image::io::Reader; use image::{ColorType, DynamicImage, ImageFormat}; use std::error::Error; pub fn save_image(filename: &str, cx: usize, cy: usize, pixel_data: &Vec<u8>) { image::save_buffer_with_format( filename, &pixel_data, cx as u32, cy as u32, ColorType::Rgba8, ImageFormat::Png, ) .unwrap(); } pub fn load_image(filename: &str) -> Result<(usize, usize, Vec<u8>), Box<dyn Error>> { let rgba_image = Reader::open(filename)?.decode()?.to_rgba8(); Ok(( rgba_image.width() as usize, rgba_image.height() as usize, DynamicImage::ImageRgba8(rgba_image).into_bytes(), )) }