Some GIF images lead to wrong, unexpected results in converted .pdt image tables

Problem

The pdc conversion of some animated GIFs results in incorrect image tables:

Good Example

original animated GIF (10,069 bytes)
1015.goose

converted pdt file (good)

Bad Example

optimised animated GIF (1,018 bytes)
1015.goose.opt

converted pdt file (bad)

Analysis

  • The problematic GIFs are "optimized" for small file size (using one or more of: partial frames, empty frames or various other tricks)
  • You can use gifsicle --optimize to generate such a GIF, but whether or not this file will result in the problem depends on the content of the image and the finer details of how it has been optimized
  • Worth mentioning that gifsicle is not the only source of such optimized GIF images

Workaround

  • use unoptimized GIFs (use gifsicle --unoptimize to convert problematic images)

I finally got around to sorting this out! Turns out the problem was the animated gif "clear to background" frame disposal method only applies to the previous frame's drawn area, not the entire image.

1 Like