From 69336e9c603608e27cc4458d664839f038233a00 Mon Sep 17 00:00:00 2001 From: WriterV2 Date: Sat, 5 Nov 2022 11:44:58 +0100 Subject: Add resizing for work card images --- src/images_processing.rs | 24 ++++++++++++++++++++++++ src/main.rs | 2 ++ 2 files changed, 26 insertions(+) create mode 100644 src/images_processing.rs (limited to 'src') diff --git a/src/images_processing.rs b/src/images_processing.rs new file mode 100644 index 0000000..483d44c --- /dev/null +++ b/src/images_processing.rs @@ -0,0 +1,24 @@ +use anyhow::{Context, Result}; + +// resize all work card images to 250 x 250 px +pub fn resize_workcard_images() -> Result> { + let mut result: Vec<()> = Vec::new(); + for image_file in std::fs::read_dir("images/workcardimages")? { + let path = image_file?.path(); + let filename = if let Some(name) = &path.to_str() { + Ok(format!("docs/{}", name)) + } else { + Err(anyhow::Error::msg("")) + }; + + let img = image::open(&path)?; + let processed_image = img.resize(250, 250, image::imageops::FilterType::Triangle); + let mut output_file = std::fs::File::create(filename?)?; + result.push( + processed_image + .write_to(&mut output_file, image::ImageFormat::Png) + .with_context(|| format!("Failed to resize work card image from {:?}", path))?, + ); + } + Ok(result) +} diff --git a/src/main.rs b/src/main.rs index 942b621..39d4b9d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,9 +3,11 @@ use tera::{Context, Tera}; use crate::works::Works; +mod images_processing; mod works; fn main() -> Result<()> { + images_processing::resize_workcard_images()?; // new tera instance let tera = Tera::new("templates/**/*.html")?; -- cgit v1.2.3