/gif-image

Racket code for manipulating GIF images

Primary LanguageRacketGNU General Public License v3.0GPL-3.0

What it is:
- collection of procedures to manipulate GIFs
- extract still images, metadata, recombine

Status: 
Complete! Could submit to PLaneT, but probably not worth it considering the low expected demand.

Description:

There's plenty of "make animated GIF" apps around, but none that let you split an existing animated GIF up, play around with it and then reassemble it. This could be something vaguely useful and fun.

This was originally intended to be a moderately challenging project for getting to grips with Objective-C and an image format. But after a few hours work in Obj-C, I realised that not knowing the GIF spec was the bigger problem, so I decided to tackle this in Racket first. Racket already includes good procedures for creating GIFs (the file/gif module) but none for taking them apart. So this is something new.

Racket code files:

<x>-test :- unit tests for <x>
bits-and-bytes :- simple conversion
lookit :- print all bytes for debugging
info.rkt :- links to manual.html
gif-basics :- predicates, size-calculators and other utilities
gif-decompose :- exposed API

Other files:
images/ :- sample images for testing
spec-gif89a.txt :- Graphics Interchange Format specification
comparison.xlsx :- spreadsheet comparing input and output byte-for-byte
manual.html :- Documentation for this Racket module
manual.scrbl :- Scribble code for manual.html
*.css, *.js :- Supporting code for manual.html

[KEYWORDS: racket, functional, scribble, gif, images]