diff options
| author | Laurenz <laurmaedje@gmail.com> | 2023-05-30 17:36:20 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2023-05-30 17:41:09 +0200 |
| commit | 11714609b8eb1e2939dfd86923e7b7203879228b (patch) | |
| tree | fe8dcc3f139092284428f086980afd0cb4402f36 /src/image.rs | |
| parent | 25e94cef0372e3b3aae9bd662f6012143e90e1cb (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/image.rs')
| -rw-r--r-- | src/image.rs | 2 |
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)) |
