The GIFLIB project |
The GIFLIB project maintains the giflib service library, which has been pulling images out of GIFs since 1989. It is deployed everywhere you can think of and some places you probably can't - graphics applications and web browsers on multiple operating systems, game consoles, smartphones, and likely your ATM too.
Yes, this code is he reason GIFs were in Mosaic, the first web browser that could do inline graphics; it is the implementation Andreesen and Bina used.
This is very mature, stable, small-footprint code with minimal dependencies (suitable for use in embedded deployments) that needs only occasional very minor bugfixes. Test reports from odd platforms and better regression tests are particularly welcome. Don't try to redesign it, applications beyond counting would break if you did.
It's "GIFLIB" in caps as a nod to the code's origins in the dark and backward abysm of MS-DOS, but Unix hackers are encouraged to spell it "giflib" in deference to local conventions. :-)
You can read GIFLIB's documentation here and a very detailed description of GIF here. People to thank for this code: Gershon Elber, Eric S. Raymond, Toshio Kuratomi.
Before October 2006 the GIF format was encumbered by patents on the LZW compression it uses. This first became an issue in 1993 when the patent-holders made ambiguous noises about requiring royalties. For some time a subset of this code travelled as "libungif", supporting decompression but not compression. You can read a more detailed history here.
Note: The 5.x versions change the API slightly in a way that isn't compatible with older shared libraries. This was required to fix some known problems with the extensions API and with thread-safety.
If you require shared-library compatibility back to ancient versions, build from 4.2. 4.2 and the 5.0 version are behaviorally almost identical; the few differences are explained here.
The SourceForge summary page (where you can download the source, review the project, find links to the bugtracker and mailing list pages, or ask to join the project as a developer) is here.
If you appreciate this project, and especially if you make money from it, please support continuing maintainance on Patreon.