use std::{fs::File, sync::Arc, time::Instant}; use image::{io::Reader as ImageReader, ImageOutputFormat}; use packer::RectanglePacker; fn main() -> Result<(), exun::RawUnexpected> { let img1 = ImageReader::open("src/bin/res/gator.bmp")?.decode()?; let img2 = ImageReader::open("src/bin/res/bunny.ff")?.decode()?; let img3 = ImageReader::open("src/bin/res/ghost.ico")?.decode()?; let start = Instant::now(); let mut packer = RectanglePacker::new(); packer.add_texture("gator".into(), Arc::new(img1.to_rgb8())); packer.add_texture("bunny".into(), Arc::new(img2.to_rgb8())); packer.add_texture("ghost".into(), Arc::new(img3.to_rgb8())); println!("{} milliseconds", start.elapsed().as_secs_f32() * 1000.0); let start = Instant::now(); let packed = packer.output(); println!("{} milliseconds", start.elapsed().as_secs_f32() * 1000.0); let mut file = File::create("packed.png")?; packed?.0.write_to(&mut file, ImageOutputFormat::Bmp)?; Ok(()) }