blob: 4d898d59f414b782cbb0838a152a33b5ceb917e7 (
plain)
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_rgba8()));
packer.add_texture("bunny".into(), Arc::new(img2.to_rgba8()));
packer.add_texture("ghost".into(), Arc::new(img3.to_rgba8()));
println!("{} milliseconds", start.elapsed().as_secs_f32() * 1000.0);
let start = Instant::now();
let packed = packer.output(1, 1);
println!("{} milliseconds", start.elapsed().as_secs_f32() * 1000.0);
let mut file = File::create("packed.png")?;
packed?
.get_full_atlas()
.write_to(&mut file, ImageOutputFormat::Bmp)?;
Ok(())
}
|