GIF Suite Image List

Test GIF images are displayed in the leftmost column. Where they contain multiple frames, each frame is rendered as a reference PNG in subsequent columns, exactly as it should appear. Any differences indicate a bug in the GIF decoder.

Image Frame 1 Frame 2 Frame 3 Frame 4 Notes
N/A N/A N/A Static gif with no animation, no transparency
Animated gif with 4 frames, no loop, no transparency
Animated gif with 4 frames, looping forever, no transparency
Interlaced gif with 4 frames, looping forever, no transparency
Animated gif with 4 frames, looping forever, no transparency, shorter delay between frames 2 and 3
N/A N/A N/A Static transparent gif with no animation
Transparent gif with 4 frames, loops forever
Transparent gif with 4 frames, loops forever, restore previous
Transparent gif with 4 frames, loops forever, first frame restore previous
Transparent gif with 4 transparent frames, loops forever, no dispose
Transparent gif with 4 transparent frames, loops forever, restore background
Transparent gif with 4 transparent frames, loops forever, restore previous

Erroneous test case: frame out-of-bounds. The first frame is located at offset (200,0) and so is wholly outside of the bounds of the 100x100 GIF. The last frame is partially out of bounds, located at (60,60) and of size (50,50).

Note that the GIF specification is unclear on what to do if a frame extends past the logical screen of the GIF, therefore different renderers behave differently here:

  • Firefox, ImageMagick: don't expand logical screen, render unwritten pixels as transparent (this is what the reference frames show)
  • Chrome, Edge, IE11: expand logical screen, render unwritten pixels as transparent
  • Safari: don't expand logical screen, render unwritten pixels as GIF background colour
N/A N/A N/A N/A

Erroneous test case:. Final frame contains bad LZW data and will fail to decode. Decoder implementations are not under any obligation to render anything useful here, however they should fail gracefully and not crash.