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 zcmbSyWmFtN*X9fZ3~qto4uN37VQ@llC-~s*8r&gh(7}R3NRZ&}?oMzIFgU^8Ki=Iv z-=4F-cK3GGudc3hpVL*hZ{6qVmxY&g0FIoLtP}tU1Ohx?FTl$(Kmq_lK=@C4HN@A3 zgo1>Gh=_y+1|y?jpkZL3qoJc?V&UOnV&P(;qvO2A!F_{IKtOp9l}10RKOe z070+MAR?h6A)(@9qGRI!Kif+u02c-53uFNSX#fbgKoBnQr58X6005C*z5S2F|I2^~ zuRbD!QBcv)UkB9T01$v65CS6TKVH9%_Ite#K*UADqvjAtexqs(rg6sS3`)pDq5W9Z zMWFWQl#a{9B^VX$Eg=yx3H>_;#`jFzJiL7T5CMr#l2Xz#vT~o*H8i!fb#zV5%q=Xf ztZiJsxVd|HdU=O@4GjyAh>U_ICMBn&eossPk^l2oL19tx@9LV`y84F3rsnRR-oE~U z!J*-)>6zKN`Gv)$jZOI0_Rj9!{=wP##pTuY&F$U&e{cZ-p#KT$zmfePxNu)_As`}x z5W)Y!1w`<8?I2u4Bx(+1JaJX9vGW@m&L9;0j|q8IU8uBNYNrGyE`QM8(s6IlpZy2g z|3LPC2Q2vi3)z1I``@^h02m

&pY-0z?6)%xV6M&fEcJ=nn(mT<|17yMO?$dw*{( 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%0ARGaEEY-J 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 kY@jx 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 z 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

tV7IiHiQs%AXx~Z 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 SUSuQ+{?XGm(#qGc4E%o!ocRj? literal 0 HcmV?d00001 diff --git a/components/imageproc/tests/test_imgs/svg.svg b/components/imageproc/tests/test_imgs/svg.svg new file mode 100644 index 00000000..0c078163 --- /dev/null +++ b/components/imageproc/tests/test_imgs/svg.svg @@ -0,0 +1,56 @@ + + + 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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 K;H_F9fB*nhAR 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() ); }