use image::ImageReader;
use image::DynamicImage;
use std::error::Error;
use std::fs;
use std::path::Path;
pub fn load_tiles(path: &Path) -> Result<Vec<DynamicImage>, Box<dyn Error>> {
if !path.is_dir() {
return Err(format!("Path must be a directory: {}", path.display()).into());
}
let mut tiles = Vec::new();
for entry in fs::read_dir(path)? {
let entry = entry?;
let path = entry.path();
if path.is_file() {
let tile = load(&path)?;
tiles.push(tile);
}
}
Ok(tiles)
}
fn load(tile: &Path) -> Result<DynamicImage, Box<dyn Error>> {
Ok(ImageReader::open(&tile)?.decode()?)
}