From 11714609b8eb1e2939dfd86923e7b7203879228b Mon Sep 17 00:00:00 2001 From: Laurenz Date: Tue, 30 May 2023 17:36:20 +0200 Subject: [PATCH] Skip empty ICC profiles ICC profile decoding for PNGs is broken in the version of the `png` crate `image` currently depends on. The bugfix (https://github.com/image-rs/image-png/commit/4c5b0535f05b8ea5fc1dbd7179d487728edea757) is released in `png`, but not yet in `image`. As a quick fix, we'll skip empty profiles, they are never valid anyway. Fixes #1333. --- src/image.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/image.rs b/src/image.rs index 210aedda..c6bf3198 100644 --- a/src/image.rs +++ b/src/image.rs @@ -239,7 +239,7 @@ fn decode_raster(data: &Buffer, format: RasterFormat) -> StrResult, ) -> ImageResult<(image::DynamicImage, Option)> { let mut decoder = decoder?; - let icc = decoder.icc_profile().map(IccProfile); + let icc = decoder.icc_profile().filter(|data| !data.is_empty()).map(IccProfile); decoder.set_limits(Limits::default())?; let dynamic = image::DynamicImage::from_decoder(decoder)?; Ok((dynamic, icc))