diff --git a/crates/pdf/src/page.rs b/crates/pdf/src/page.rs index 7ca35536c..b877c2e01 100644 --- a/crates/pdf/src/page.rs +++ b/crates/pdf/src/page.rs @@ -1058,9 +1058,10 @@ impl<'a> Interp<'a> { self.b.skip("image (page pixel limit)"); return; }; + // Charged even when the decode fails: the declared size is what costs. + self.image_pixels = left; match crate::image::decode(self.file, d, raw, Some(res), fill) { Ok(img) => { - self.image_pixels = left; let decoded = (img.width, img.height, std::sync::Arc::new(img.rgba)); if let Some(k) = cache_key { self.images.insert(k, decoded.clone());