From 8589ed72f4b43f214332aab26959962a7dac4b69 Mon Sep 17 00:00:00 2001 From: Rosyid Haryadi Date: Sat, 1 Mar 2025 20:50:10 +0700 Subject: upd png exporter --- src/view.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/view.rs') diff --git a/src/view.rs b/src/view.rs index 28ce849..bf3a356 100644 --- a/src/view.rs +++ b/src/view.rs @@ -22,6 +22,7 @@ impl<'a> View<'a> { } pub mod render_viewer { + use crate::global::Pixel; use super::*; pub fn ppm_exporter(data: &DisplayBuffer) -> Result { @@ -39,4 +40,15 @@ pub mod render_viewer { file.write_all(txt_data.as_bytes())?; Ok(format!("Output rendered to file {}", file_name)) } + + pub fn png_exporter(data: &DisplayBuffer) -> Result { + let file_name = "output.png"; + let mut imgbuf = image::ImageBuffer::new(IMG_WIDTH as u32, IMG_HEIGHT as u32); + for (x, y, pixel) in imgbuf.enumerate_pixels_mut() { + let Pixel{r, g, b} = data[y as usize][x as usize]; + *pixel = image::Rgb([r, g, b]); + } + imgbuf.save(file_name).unwrap(); + Ok(format!("Output rendered to file {}", file_name)) + } } -- cgit v1.2.3-70-g09d2