From 9145af6b3e98f9e2f01200ce73f17eccedbec922 Mon Sep 17 00:00:00 2001 From: Vojtech Kral Date: Tue, 8 Jun 2021 09:38:29 +0200 Subject: [PATCH] imageproc things for paths refactor (#1484) * Move image loading code used by get_image_metadata from templates to imageproc * resize_image: Compute image resize op beforehand and return metadata to caller * get_image_metdata: Use a serializable response struct * imageproc: Add integration tests * imageproc: Assume webp is lossy * get_image_metadata: Use webp crate for decoding WebP, image is still not very good at it * imageproc: Test read_image_dimensions in integration tests * imageproc: Rename read_image_dimensions() as read_image_metadata() * imageproc: Fix a regression in hash computation * imageproc: Don't hardcode hashes in integration tests, pattern match them instead * imageproc: Style fixes * imageproc: Fix integration tests on Windows (hopefully) --- Cargo.lock | 6 +- components/imageproc/Cargo.toml | 7 + components/imageproc/src/lib.rs | 390 ++++++++++++------ components/imageproc/tests/resize_image.rs | 161 ++++++++ components/imageproc/tests/test_imgs/jpg.jpg | Bin 0 -> 47783 bytes components/imageproc/tests/test_imgs/png.png | Bin 0 -> 123368 bytes components/imageproc/tests/test_imgs/svg.svg | 56 +++ .../imageproc/tests/test_imgs/webp.webp | Bin 0 -> 9828 bytes components/templates/Cargo.toml | 2 - components/templates/src/global_fns/images.rs | 77 +--- 10 files changed, 520 insertions(+), 179 deletions(-) create mode 100644 components/imageproc/tests/resize_image.rs create mode 100644 components/imageproc/tests/test_imgs/jpg.jpg create mode 100644 components/imageproc/tests/test_imgs/png.png create mode 100644 components/imageproc/tests/test_imgs/svg.svg create mode 100644 components/imageproc/tests/test_imgs/webp.webp diff --git a/Cargo.lock b/Cargo.lock index 6e9b889f..e3fa6bd4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1028,6 +1028,10 @@ dependencies = [ "lazy_static", "rayon", "regex", + "serde", + "serde_json", + "site", + "svg_metadata", "tera", "utils", "webp", @@ -2585,7 +2589,6 @@ dependencies = [ "config", "csv", "errors", - "image", "imageproc", "lazy_static", "library", @@ -2597,7 +2600,6 @@ dependencies = [ "serde_derive", "serde_json", "sha2", - "svg_metadata", "tempfile", "tera", "toml", diff --git a/components/imageproc/Cargo.toml b/components/imageproc/Cargo.toml index 70a9af1a..8b11f1e0 100644 --- a/components/imageproc/Cargo.toml +++ b/components/imageproc/Cargo.toml @@ -11,7 +11,14 @@ tera = "1" image = "0.23" rayon = "1" webp = "0.1.1" +serde = { version = "1", features = ["derive"] } +svg_metadata = "0.4.1" errors = { path = "../errors" } utils = { path = "../utils" } config = { path = "../config" } + +[dev-dependencies] +# TODO: prune +serde_json = "1" +site = { path = "../site" } diff --git a/components/imageproc/src/lib.rs b/components/imageproc/src/lib.rs index 4e04f033..4bb0dded 100644 --- a/components/imageproc/src/lib.rs +++ b/components/imageproc/src/lib.rs @@ -1,15 +1,21 @@ use std::collections::hash_map::Entry as HEntry; use std::collections::HashMap; +use std::error::Error as StdError; +use std::ffi::OsStr; use std::fs::{self, File}; use std::hash::{Hash, Hasher}; use std::path::{Path, PathBuf}; use std::{collections::hash_map::DefaultHasher, io::Write}; +use image::error::ImageResult; +use image::io::Reader as ImgReader; use image::{imageops::FilterType, EncodableLayout}; -use image::{GenericImageView, ImageOutputFormat}; +use image::{ImageFormat, ImageOutputFormat}; use lazy_static::lazy_static; use rayon::prelude::*; use regex::Regex; +use serde::{Deserialize, Serialize}; +use svg_metadata::Metadata as SvgMetadata; use config::Config; use errors::{Error, Result}; @@ -23,9 +29,34 @@ lazy_static! { Regex::new(r#"([0-9a-f]{16})([0-9a-f]{2})[.](jpg|png|webp)"#).unwrap(); } -/// Describes the precise kind of a resize operation +/// Size and format read cheaply with `image`'s `Reader`. +#[derive(Debug)] +struct ImageMeta { + size: (u32, u32), + format: Option, +} + +impl ImageMeta { + fn read(path: &Path) -> ImageResult { + let reader = ImgReader::open(path).and_then(ImgReader::with_guessed_format)?; + let format = reader.format(); + let size = reader.into_dimensions()?; + + Ok(Self { size, format }) + } + + fn is_lossy(&self) -> bool { + use ImageFormat::*; + + // We assume lossy by default / if unknown format + let format = self.format.unwrap_or(Jpeg); + !matches!(format, Png | Pnm | Tiff | Tga | Bmp | Ico | Hdr | Farbfeld) + } +} + +/// De-serialized & sanitized arguments of `resize_image` #[derive(Debug, Clone, Copy, PartialEq, Eq)] -pub enum ResizeOp { +pub enum ResizeArgs { /// A simple scale operation that doesn't take aspect ratio into account Scale(u32, u32), /// Scales the image to a specified width with height computed such @@ -45,9 +76,9 @@ pub enum ResizeOp { Fill(u32, u32), } -impl ResizeOp { - pub fn from_args(op: &str, width: Option, height: Option) -> Result { - use ResizeOp::*; +impl ResizeArgs { + pub fn from_args(op: &str, width: Option, height: Option) -> Result { + use ResizeArgs::*; // Validate args: match op { @@ -80,58 +111,87 @@ impl ResizeOp { _ => unreachable!(), }) } +} - pub fn width(self) -> Option { - use ResizeOp::*; +/// Contains image crop/resize instructions for use by `Processor` +/// +/// The `Processor` applies `crop` first, if any, and then `resize`, if any. +#[derive(Clone, PartialEq, Eq, Hash, Default, Debug)] +struct ResizeOp { + crop: Option<(u32, u32, u32, u32)>, // x, y, w, h + resize: Option<(u32, u32)>, // w, h +} - match self { - Scale(w, _) => Some(w), - FitWidth(w) => Some(w), - FitHeight(_) => None, - Fit(w, _) => Some(w), - Fill(w, _) => Some(w), +impl ResizeOp { + fn new(args: ResizeArgs, (orig_w, orig_h): (u32, u32)) -> Self { + use ResizeArgs::*; + + let res = ResizeOp::default(); + + match args { + Scale(w, h) => res.resize((w, h)), + FitWidth(w) => { + let h = (orig_h as u64 * w as u64) / orig_w as u64; + res.resize((w, h as u32)) + } + FitHeight(h) => { + let w = (orig_w as u64 * h as u64) / orig_h as u64; + res.resize((w as u32, h)) + } + Fit(w, h) => { + let orig_w_h = orig_w as u64 * h as u64; + let orig_h_w = orig_h as u64 * w as u64; + + if orig_w_h > orig_h_w { + Self::new(FitWidth(w), (orig_w, orig_h)) + } else { + Self::new(FitHeight(h), (orig_w, orig_h)) + } + } + Fill(w, h) => { + const RATIO_EPSILLION: f32 = 0.1; + + let factor_w = orig_w as f32 / w as f32; + let factor_h = orig_h as f32 / h as f32; + + if (factor_w - factor_h).abs() <= RATIO_EPSILLION { + // If the horizontal and vertical factor is very similar, + // that means the aspect is similar enough that there's not much point + // in cropping, so just perform a simple scale in this case. + res.resize((w, h)) + } else { + // We perform the fill such that a crop is performed first + // and then resize_exact can be used, which should be cheaper than + // resizing and then cropping (smaller number of pixels to resize). + let (crop_w, crop_h) = if factor_w < factor_h { + (orig_w, (factor_w * h as f32).round() as u32) + } else { + ((factor_h * w as f32).round() as u32, orig_h) + }; + + let (offset_w, offset_h) = if factor_w < factor_h { + (0, (orig_h - crop_h) / 2) + } else { + ((orig_w - crop_w) / 2, 0) + }; + + res.crop((offset_w, offset_h, crop_w, crop_h)).resize((w, h)) + } + } } } - pub fn height(self) -> Option { - use ResizeOp::*; + fn crop(mut self, crop: (u32, u32, u32, u32)) -> Self { + self.crop = Some(crop); + self + } - match self { - Scale(_, h) => Some(h), - FitWidth(_) => None, - FitHeight(h) => Some(h), - Fit(_, h) => Some(h), - Fill(_, h) => Some(h), - } + fn resize(mut self, size: (u32, u32)) -> Self { + self.resize = Some(size); + self } } -impl From for u8 { - fn from(op: ResizeOp) -> u8 { - use ResizeOp::*; - - match op { - Scale(_, _) => 1, - FitWidth(_) => 2, - FitHeight(_) => 3, - Fit(_, _) => 4, - Fill(_, _) => 5, - } - } -} - -#[allow(clippy::derive_hash_xor_eq)] -impl Hash for ResizeOp { - fn hash(&self, hasher: &mut H) { - hasher.write_u8(u8::from(*self)); - if let Some(w) = self.width() { - hasher.write_u32(w); - } - if let Some(h) = self.height() { - hasher.write_u32(h); - } - } -} /// Thumbnail image format #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum Format { @@ -144,21 +204,23 @@ pub enum Format { } impl Format { - pub fn from_args(source: &str, format: &str, quality: Option) -> Result { + fn from_args(meta: &ImageMeta, format: &str, quality: Option) -> Result { use Format::*; if let Some(quality) = quality { assert!(quality > 0 && quality <= 100, "Quality must be within the range [1; 100]"); } let jpg_quality = quality.unwrap_or(DEFAULT_Q_JPG); match format { - "auto" => match Self::is_lossy(source) { - Some(true) => Ok(Jpeg(jpg_quality)), - Some(false) => Ok(Png), - None => Err(format!("Unsupported image file: {}", source).into()), - }, + "auto" => { + if meta.is_lossy() { + Ok(Jpeg(jpg_quality)) + } else { + Ok(Png) + } + } "jpeg" | "jpg" => Ok(Jpeg(jpg_quality)), "png" => Ok(Png), - "webp" => Ok(WebP(quality)), + "webp" => Ok(WebP(quality)), // FIXME: this is undoc'd _ => Err(format!("Invalid image format: {}", format).into()), } } @@ -173,8 +235,8 @@ impl Format { "png" => Some(false), "gif" => Some(false), "bmp" => Some(false), - // It is assumed that webp is lossless, but it can be both - "webp" => Some(false), + // It is assumed that webp is lossy, but it can be both + "webp" => Some(true), _ => None, }) .unwrap_or(None) @@ -212,7 +274,10 @@ impl Hash for Format { /// Holds all data needed to perform a resize operation #[derive(Debug, PartialEq, Eq)] pub struct ImageOp { - source: String, + /// This is the source input path string as passed in the template, we need this to compute the hash. + /// Hashing the resolved `input_path` would include the absolute path to the image + /// with all filesystem components. + input_src: String, input_path: PathBuf, op: ResizeOp, format: Format, @@ -226,79 +291,32 @@ pub struct ImageOp { } impl ImageOp { - pub fn from_args( - source: String, - input_path: PathBuf, - op: &str, - width: Option, - height: Option, - format: &str, - quality: Option, - ) -> Result { - let op = ResizeOp::from_args(op, width, height)?; - let format = Format::from_args(&source, format, quality)?; + const RESIZE_FILTER: FilterType = FilterType::Lanczos3; + fn new(input_src: String, input_path: PathBuf, op: ResizeOp, format: Format) -> ImageOp { let mut hasher = DefaultHasher::new(); - hasher.write(source.as_ref()); + hasher.write(input_src.as_ref()); op.hash(&mut hasher); format.hash(&mut hasher); let hash = hasher.finish(); - Ok(ImageOp { source, input_path, op, format, hash, collision_id: 0 }) + ImageOp { input_src, input_path, op, format, hash, collision_id: 0 } } fn perform(&self, target_path: &Path) -> Result<()> { - use ResizeOp::*; - if !ufs::file_stale(&self.input_path, target_path) { return Ok(()); } let mut img = image::open(&self.input_path)?; - let (img_w, img_h) = img.dimensions(); - const RESIZE_FILTER: FilterType = FilterType::Lanczos3; - const RATIO_EPSILLION: f32 = 0.1; - - let img = match self.op { - Scale(w, h) => img.resize_exact(w, h, RESIZE_FILTER), - FitWidth(w) => img.resize(w, u32::MAX, RESIZE_FILTER), - FitHeight(h) => img.resize(u32::MAX, h, RESIZE_FILTER), - Fit(w, h) => { - if img_w > w || img_h > h { - img.resize(w, h, RESIZE_FILTER) - } else { - img - } - } - Fill(w, h) => { - let factor_w = img_w as f32 / w as f32; - let factor_h = img_h as f32 / h as f32; - - if (factor_w - factor_h).abs() <= RATIO_EPSILLION { - // If the horizontal and vertical factor is very similar, - // that means the aspect is similar enough that there's not much point - // in cropping, so just perform a simple scale in this case. - img.resize_exact(w, h, RESIZE_FILTER) - } else { - // We perform the fill such that a crop is performed first - // and then resize_exact can be used, which should be cheaper than - // resizing and then cropping (smaller number of pixels to resize). - let (crop_w, crop_h) = if factor_w < factor_h { - (img_w, (factor_w * h as f32).round() as u32) - } else { - ((factor_h * w as f32).round() as u32, img_h) - }; - - let (offset_w, offset_h) = if factor_w < factor_h { - (0, (img_h - crop_h) / 2) - } else { - ((img_w - crop_w) / 2, 0) - }; - - img.crop(offset_w, offset_h, crop_w, crop_h).resize_exact(w, h, RESIZE_FILTER) - } - } + let img = match self.op.crop { + Some((x, y, w, h)) => img.crop(x, y, w, h), + None => img, + }; + let img = match self.op.resize { + Some((w, h)) => img.resize_exact(w, h, Self::RESIZE_FILTER), + None => img, }; let mut f = File::create(target_path)?; @@ -324,6 +342,33 @@ impl ImageOp { } } +// FIXME: Explain this in the doc +#[derive(Debug, Serialize, Deserialize, PartialEq, Eq)] +pub struct EnqueueResponse { + /// The final URL for that asset + pub url: String, + /// The path to the static asset generated + pub static_path: String, + /// New image width + pub width: u32, + /// New image height + pub height: u32, + /// Original image width + pub orig_width: u32, + /// Original image height + pub orig_height: u32, +} + +impl EnqueueResponse { + fn new(url: String, static_path: PathBuf, meta: &ImageMeta, op: &ResizeOp) -> Self { + let static_path = static_path.to_string_lossy().into_owned(); + let (width, height) = op.resize.unwrap_or(meta.size); + let (orig_width, orig_height) = meta.size; + + Self { url, static_path, width, height, orig_width, orig_height } + } +} + /// A struct into which image operations can be enqueued and then performed. /// All output is written in a subdirectory in `static_path`, /// taking care of file stale status based on timestamps and possible hash collisions. @@ -360,6 +405,29 @@ impl Processor { self.img_ops.len() + self.img_ops_collisions.len() } + pub fn enqueue( + &mut self, + input_src: String, + input_path: PathBuf, + op: &str, + width: Option, + height: Option, + format: &str, + quality: Option, + ) -> Result { + let meta = ImageMeta::read(&input_path).map_err(|e| { + Error::chain(format!("Failed to read image: {}", input_path.display()), e) + })?; + + let args = ResizeArgs::from_args(op, width, height)?; + let op = ResizeOp::new(args, meta.size); + let format = Format::from_args(&meta, format, quality)?; + let img_op = ImageOp::new(input_src, input_path, op.clone(), format); + let (static_path, url) = self.insert(img_op); + + Ok(EnqueueResponse::new(url, static_path, &meta, &op)) + } + fn insert_with_collisions(&mut self, mut img_op: ImageOp) -> u32 { match self.img_ops.entry(img_op.hash) { HEntry::Occupied(entry) => { @@ -414,7 +482,7 @@ impl Processor { /// Adds the given operation to the queue but do not process it immediately. /// Returns (path in static folder, final URL). - pub fn insert(&mut self, img_op: ImageOp) -> (PathBuf, String) { + fn insert(&mut self, img_op: ImageOp) -> (PathBuf, String) { let hash = img_op.hash; let format = img_op.format; let collision_id = self.insert_with_collisions(img_op); @@ -423,6 +491,7 @@ impl Processor { (Path::new("static").join(RESIZED_SUBDIR).join(filename), url) } + /// Remove stale processed images in the output directory pub fn prune(&self) -> Result<()> { // Do not create folders if they don't exist if !self.output_dir.exists() { @@ -449,6 +518,7 @@ impl Processor { Ok(()) } + /// Run the enqueued image operations pub fn do_process(&mut self) -> Result<()> { if !self.img_ops.is_empty() { ufs::ensure_directory_exists(&self.output_dir)?; @@ -459,9 +529,89 @@ impl Processor { .map(|(hash, op)| { let target = self.output_dir.join(Self::op_filename(*hash, op.collision_id, op.format)); - op.perform(&target) - .map_err(|e| Error::chain(format!("Failed to process image: {}", op.source), e)) + op.perform(&target).map_err(|e| { + Error::chain(format!("Failed to process image: {}", op.input_path.display()), e) + }) }) .collect::>() } } + +#[derive(Debug, Serialize, Eq, PartialEq)] +pub struct ImageMetaResponse { + pub width: u32, + pub height: u32, + pub format: Option<&'static str>, +} + +impl ImageMetaResponse { + pub fn new_svg(width: u32, height: u32) -> Self { + Self { width, height, format: Some("svg") } + } +} + +impl From for ImageMetaResponse { + fn from(im: ImageMeta) -> Self { + Self { + width: im.size.0, + height: im.size.1, + format: im.format.and_then(|f| f.extensions_str().get(0)).map(|&f| f), + } + } +} + +impl From for ImageMetaResponse { + fn from(img: webp::WebPImage) -> Self { + Self { width: img.width(), height: img.height(), format: Some("webp") } + } +} + +/// Read image dimensions (cheaply), used in `get_image_metadata()`, supports SVG +pub fn read_image_metadata>(path: P) -> Result { + let path = path.as_ref(); + let ext = path.extension().and_then(OsStr::to_str).unwrap_or("").to_lowercase(); + + let error = |e: Box| { + Error::chain(format!("Failed to read image: {}", path.display()), e) + }; + + match ext.as_str() { + "svg" => { + let img = SvgMetadata::parse_file(&path).map_err(|e| error(e.into()))?; + match (img.height(), img.width(), img.view_box()) { + (Some(h), Some(w), _) => Ok((h, w)), + (_, _, Some(view_box)) => Ok((view_box.height, view_box.width)), + _ => Err("Invalid dimensions: SVG width/height and viewbox not set.".into()), + } + .map(|(h, w)| ImageMetaResponse::new_svg(h as u32, w as u32)) + } + "webp" => { + // Unfortunatelly we have to load the entire image here, unlike with the others :| + let data = fs::read(path).map_err(|e| error(e.into()))?; + let decoder = webp::Decoder::new(&data[..]); + decoder + .decode() + .map(ImageMetaResponse::from) + .ok_or_else(|| Error::msg(format!("Failed to decode WebP image: {}", path.display()))) + } + _ => ImageMeta::read(path).map(ImageMetaResponse::from).map_err(|e| error(e.into())), + } +} + +/// Assert that `address` matches `prefix` + RESIZED_FILENAME regex + "." + `extension`, +/// this is useful in test so that we don't need to hardcode hash, which is annoying. +pub fn assert_processed_path_matches(path: &str, prefix: &str, extension: &str) { + let filename = path + .strip_prefix(prefix) + .unwrap_or_else(|| panic!("Path `{}` doesn't start with `{}`", path, prefix)); + + let suffix = format!(".{}", extension); + assert!(filename.ends_with(&suffix), "Path `{}` doesn't end with `{}`", path, suffix); + + assert!( + RESIZED_FILENAME.is_match_at(filename, 0), + "In path `{}`, file stem `{}` doesn't match the RESIZED_FILENAME regex", + path, + filename + ); +} diff --git a/components/imageproc/tests/resize_image.rs b/components/imageproc/tests/resize_image.rs new file mode 100644 index 00000000..c19cf1f4 --- /dev/null +++ b/components/imageproc/tests/resize_image.rs @@ -0,0 +1,161 @@ +use std::env; +use std::path::{PathBuf, MAIN_SEPARATOR as SLASH}; + +use lazy_static::lazy_static; + +use config::Config; +use imageproc::{assert_processed_path_matches, ImageMetaResponse, Processor}; +use utils::fs as ufs; + +static CONFIG: &str = r#" +title = "imageproc integration tests" +base_url = "https://example.com" +compile_sass = false +build_search_index = false + +[markdown] +highlight_code = false +"#; + + +lazy_static! { + static ref TEST_IMGS: PathBuf = + [env!("CARGO_MANIFEST_DIR"), "tests", "test_imgs"].iter().collect(); + static ref TMPDIR: PathBuf = { + let tmpdir = option_env!("CARGO_TARGET_TMPDIR").map(PathBuf::from).unwrap_or_else(|| { + env::current_exe().unwrap().parent().unwrap().parent().unwrap().join("tmpdir") + }); + ufs::ensure_directory_exists(&tmpdir).unwrap(); + tmpdir + }; + static ref PROCESSED_PREFIX: String = format!("static{0}processed_images{0}", SLASH); +} + +fn image_op_test( + source_img: &str, + op: &str, + width: Option, + height: Option, + format: &str, + expect_ext: &str, + expect_width: u32, + expect_height: u32, + orig_width: u32, + orig_height: u32, +) { + let source_path = TEST_IMGS.join(source_img); + + let config = Config::parse(&CONFIG).unwrap(); + let mut proc = Processor::new(TMPDIR.clone(), &config); + + let resp = + proc.enqueue(source_img.into(), source_path, op, width, height, format, None).unwrap(); + assert_processed_path_matches(&resp.url, "https://example.com/processed_images/", expect_ext); + assert_processed_path_matches(&resp.static_path, PROCESSED_PREFIX.as_str(), expect_ext); + assert_eq!(resp.width, expect_width); + assert_eq!(resp.height, expect_height); + assert_eq!(resp.orig_width, orig_width); + assert_eq!(resp.orig_height, orig_height); + + proc.do_process().unwrap(); + + let processed_path = PathBuf::from(&resp.static_path); + let processed_size = imageproc::read_image_metadata(&TMPDIR.join(processed_path)) + .map(|meta| (meta.width, meta.height)) + .unwrap(); + assert_eq!(processed_size, (expect_width, expect_height)); +} + +fn image_meta_test(source_img: &str) -> ImageMetaResponse { + let source_path = TEST_IMGS.join(source_img); + imageproc::read_image_metadata(&source_path).unwrap() +} + +#[test] +fn resize_image_scale() { + image_op_test("jpg.jpg", "scale", Some(150), Some(150), "auto", "jpg", 150, 150, 300, 380); +} + +#[test] +fn resize_image_fit_width() { + image_op_test("jpg.jpg", "fit_width", Some(150), None, "auto", "jpg", 150, 190, 300, 380); +} + +#[test] +fn resize_image_fit_height() { + image_op_test("webp.webp", "fit_height", None, Some(190), "auto", "jpg", 150, 190, 300, 380); +} + +#[test] +fn resize_image_fit1() { + image_op_test("jpg.jpg", "fit", Some(150), Some(200), "auto", "jpg", 150, 190, 300, 380); +} + +#[test] +fn resize_image_fit2() { + image_op_test("jpg.jpg", "fit", Some(160), Some(180), "auto", "jpg", 142, 180, 300, 380); +} + +#[test] +fn resize_image_fill1() { + image_op_test("jpg.jpg", "fill", Some(100), Some(200), "auto", "jpg", 100, 200, 300, 380); +} + +#[test] +fn resize_image_fill2() { + image_op_test("jpg.jpg", "fill", Some(200), Some(100), "auto", "jpg", 200, 100, 300, 380); +} + +#[test] +fn resize_image_png_png() { + image_op_test("png.png", "scale", Some(150), Some(150), "auto", "png", 150, 150, 300, 380); +} + +#[test] +fn resize_image_png_jpg() { + image_op_test("png.png", "scale", Some(150), Some(150), "jpg", "jpg", 150, 150, 300, 380); +} + +#[test] +fn resize_image_png_webp() { + image_op_test("png.png", "scale", Some(150), Some(150), "webp", "webp", 150, 150, 300, 380); +} + +#[test] +fn resize_image_webp_jpg() { + image_op_test("webp.webp", "scale", Some(150), Some(150), "auto", "jpg", 150, 150, 300, 380); +} + +#[test] +fn read_image_metadata_jpg() { + assert_eq!( + image_meta_test("jpg.jpg"), + ImageMetaResponse { width: 300, height: 380, format: Some("jpg") } + ); +} + +#[test] +fn read_image_metadata_png() { + assert_eq!( + image_meta_test("png.png"), + ImageMetaResponse { width: 300, height: 380, format: Some("png") } + ); +} + +#[test] +fn read_image_metadata_svg() { + assert_eq!( + image_meta_test("svg.svg"), + ImageMetaResponse { width: 300, height: 300, format: Some("svg") } + ); +} + +#[test] +fn read_image_metadata_webp() { + assert_eq!( + image_meta_test("webp.webp"), + ImageMetaResponse { width: 300, height: 380, format: Some("webp") } + ); +} + +// TODO: Test that hash remains the same if physical path is changed diff --git a/components/imageproc/tests/test_imgs/jpg.jpg b/components/imageproc/tests/test_imgs/jpg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0b031e9c78bdc01bb9fc56755343eb14919a28a3 GIT binary patch literal 47783 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 + + SVG Logo + Designed for the SVG Logo Contest in 2006 by Harvey Rayner, and adopted by W3C in 2009. It is available under the Creative Commons license for those who have an SVG product or who are using SVG on their site. + + + + + SVG Logo + 14-08-2009 + + W3C + Harvey Rayner, designer + + See document description + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/components/imageproc/tests/test_imgs/webp.webp b/components/imageproc/tests/test_imgs/webp.webp new file mode 100644 index 0000000000000000000000000000000000000000..a58d420635c30fc08155f8b15c3737cc838be5b8 GIT binary patch literal 9828 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 a+qXT@Jn(cw!lpS7#7{n08>P^|zyJVMAR Result<(u32, u32)> { - if let Some("svg") = path.extension().and_then(OsStr::to_str) { - let img = svg::Metadata::parse_file(&path) - .map_err(|e| Error::chain(format!("Failed to process SVG: {}", path.display()), e))?; - match (img.height(), img.width(), img.view_box()) { - (Some(h), Some(w), _) => Ok((h as u32, w as u32)), - (_, _, Some(view_box)) => Ok((view_box.height as u32, view_box.width as u32)), - _ => Err("Invalid dimensions: SVG width/height and viewbox not set.".into()), - } - } else { - let img = image::open(&path) - .map_err(|e| Error::chain(format!("Failed to process image: {}", path.display()), e))?; - Ok((img.height(), img.width())) + to_value(response).map_err(Into::into) } } @@ -139,11 +105,10 @@ impl TeraFn for GetImageMetadata { return Err(format!("`resize_image`: Cannot find path: {}", path).into()); } }; - let (height, width) = image_dimensions(&src_path)?; - let mut map = tera::Map::new(); - map.insert(String::from("height"), Value::Number(tera::Number::from(height))); - map.insert(String::from("width"), Value::Number(tera::Number::from(width))); - Ok(Value::Object(map)) + + let response = imageproc::read_image_metadata(&src_path) + .map_err(|e| format!("`resize_image`: {}", e))?; + to_value(response).map_err(Into::into) } } @@ -190,13 +155,15 @@ mod tests { let data = static_fn.call(&args).unwrap().as_object().unwrap().clone(); let static_path = Path::new("static").join("processed_images"); + // TODO: Use `assert_processed_path_matches()` from imageproc so that hashes don't need to be hardcoded + assert_eq!( data["static_path"], - to_value(&format!("{}", static_path.join("e49f5bd23ec5007c00.jpg").display())).unwrap() + to_value(&format!("{}", static_path.join("6a89d6483cdc5f7700.jpg").display())).unwrap() ); assert_eq!( data["url"], - to_value("http://a-website.com/processed_images/e49f5bd23ec5007c00.jpg").unwrap() + to_value("http://a-website.com/processed_images/6a89d6483cdc5f7700.jpg").unwrap() ); // 2. resizing an image in content with a relative path @@ -204,33 +171,33 @@ mod tests { let data = static_fn.call(&args).unwrap().as_object().unwrap().clone(); assert_eq!( data["static_path"], - to_value(&format!("{}", static_path.join("32454a1e0243976c00.jpg").display())).unwrap() + to_value(&format!("{}", static_path.join("202d9263f4dbc95900.jpg").display())).unwrap() ); assert_eq!( data["url"], - to_value("http://a-website.com/processed_images/32454a1e0243976c00.jpg").unwrap() + to_value("http://a-website.com/processed_images/202d9263f4dbc95900.jpg").unwrap() ); // 3. resizing with an absolute path is the same as the above args.insert("path".to_string(), to_value("/content/gutenberg.jpg").unwrap()); assert_eq!( data["static_path"], - to_value(&format!("{}", static_path.join("32454a1e0243976c00.jpg").display())).unwrap() + to_value(&format!("{}", static_path.join("202d9263f4dbc95900.jpg").display())).unwrap() ); assert_eq!( data["url"], - to_value("http://a-website.com/processed_images/32454a1e0243976c00.jpg").unwrap() + to_value("http://a-website.com/processed_images/202d9263f4dbc95900.jpg").unwrap() ); // 4. resizing an image in content starting with `@/` is the same as 2 and 3 args.insert("path".to_string(), to_value("@/gutenberg.jpg").unwrap()); assert_eq!( data["static_path"], - to_value(&format!("{}", static_path.join("32454a1e0243976c00.jpg").display())).unwrap() + to_value(&format!("{}", static_path.join("202d9263f4dbc95900.jpg").display())).unwrap() ); assert_eq!( data["url"], - to_value("http://a-website.com/processed_images/32454a1e0243976c00.jpg").unwrap() + to_value("http://a-website.com/processed_images/202d9263f4dbc95900.jpg").unwrap() ); // 5. resizing an image with a relative path not starting with static or content @@ -238,11 +205,11 @@ mod tests { let data = static_fn.call(&args).unwrap().as_object().unwrap().clone(); assert_eq!( data["static_path"], - to_value(&format!("{}", static_path.join("c8aaba7b0593a60b00.jpg").display())).unwrap() + to_value(&format!("{}", static_path.join("6296a3c153f701be00.jpg").display())).unwrap() ); assert_eq!( data["url"], - to_value("http://a-website.com/processed_images/c8aaba7b0593a60b00.jpg").unwrap() + to_value("http://a-website.com/processed_images/6296a3c153f701be00.jpg").unwrap() ); }