use std::{fs::File, io::Read}; use log::info; use crate::render::Renderer; pub struct Tiler { renderer: Renderer, } impl Tiler { pub fn new(renderer: Renderer) -> Self { Self { renderer } } pub fn get_tile(&self, z: isize, x: isize, y: isize) -> Vec { info!("generating tile (zoom={z}, x={x}, y={z})"); let segment = self.renderer.render_segment(x, y); segment .save(format!("tiles/{},{},{}.png", z, x, y)) .unwrap(); let mut f = File::open(format!("tiles/{},{},{}.png", z, x, y)).unwrap(); let mut buf = Vec::new(); f.read_to_end(&mut buf).unwrap(); buf } }