Decompress GIF frames on demand
I ended up implementing a new LZW decoder after I tried the following:
- Keeping the existing LZW decoder code - it had too much spaghetti to easily relocate it.
- Use the LZW decoding code from nsgif. It didn't support progressive loading and the more I looked into it the code wasn't of great quality.