summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2023-05-30 17:36:20 +0200
committerLaurenz <laurmaedje@gmail.com>2023-05-30 17:41:09 +0200
commit11714609b8eb1e2939dfd86923e7b7203879228b (patch)
treefe8dcc3f139092284428f086980afd0cb4402f36 /src
parent25e94cef0372e3b3aae9bd662f6012143e90e1cb (diff)
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.
Diffstat (limited to 'src')
-rw-r--r--src/image.rs2
1 files changed, 1 insertions, 1 deletions
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<Arc<DecodedIm
decoder: ImageResult<T>,
) -> ImageResult<(image::DynamicImage, Option<IccProfile>)> {
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))