mirror of
https://github.com/storytold/deckcraft.git
synced 2026-10-26 11:36:58 -06:00
picture.compress decided which originals were still in use by scanning JSON keys, which missed artistic-effect originals (and the embedded-font shape it assumed no longer exists), so compressing a picture whose bytes were also another picture's artistic original deleted media still in use. It now uses the engine's typed media walker (media_refs::presentation_media). Decoding is capped: the header's size is read first and pictures over 64 MP are left alone, and the decoder runs with image::Limits (512 MiB allocation), instead of decoding up to 400 MP before checking. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>