1<?xml version="1.0" encoding="ISO-8859-1"?> 2<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 3 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'> 4<html> 5<head> 6<link rev='made' href='mailto:[email protected]' /> 7<meta name='MSSmartTagsPreventParsing' content='TRUE' /> 8<title>The GIFLIB project</title> 9<script type="text/javascript"> 10// JavaScript to generate a compact date representation 11 12// 13// format date as yyyy-mm-dd 14// 15function date_ddmmmyyyy(date) 16{ 17 var d = date.getDate(); 18 var m = date.getMonth() + 1; 19 var y = date.getFullYear(); 20 21 return "" + y + "-" + (m<10?"0"+m:m) + "-" + (d<10?"0"+d:d); 22} 23 24 25// 26// get last modified date of the 27// current document. 28// 29function date_lastmodified() 30{ 31 var lmd = document.lastModified; 32 var s = "Unknown"; 33 var d1; 34 35 // check if we have a valid date 36 // before proceeding 37 if(0 != (d1=Date.parse(lmd))) 38 { 39 s = "" + date_ddmmmyyyy(new Date(d1)); 40 } 41 42 return s; 43} 44// End 45</script> 46</head> 47<body> 48<table width='100%' cellpadding='0' summary='Canned page header' bgcolor="#ddd"> 49<tr> 50<td><h2>The GIFLIB project</h2></td> 51<td align="center"><img src="giflib-logo.gif"></td> 52<td align='right'><script type="text/javascript"> 53document.write(date_lastmodified()); 54</script></td> 55</tr> 56</table> 57 58<p>The GIFLIB project maintains the giflib service library, which has 59been pulling images out of GIFs since 1989. It is deployed everywhere 60you can think of and some places you probably can't - graphics 61applications and web browsers on multiple operating systems, game 62consoles, smartphones, and likely your ATM too.</p> 63 64<p>Yes, this code is he reason GIFs were in Mosaic, the first web 65browser that could do inline graphics; it is the implementation 66Andreesen and Bina used.</p> 67 68<p>This is very mature, stable, small-footprint code with minimal 69dependencies (suitable for use in embedded deployments) that needs only 70occasional very minor bugfixes. Test reports from odd platforms and 71better regression tests are particularly welcome. Don't try to 72redesign it, applications beyond counting would break if you did.</p> 73 74<p>It's "GIFLIB" in caps as a nod to the code's origins in the dark 75and backward abysm of MS-DOS, but Unix hackers are encouraged to spell it 76"giflib" in deference to local conventions. :-) 77 78<p>You can read GIFLIB's documentation <a href="intro.html">here</a> 79and a very detailed description of GIF <a 80href="whatsinagif/index.html">here</a>. People to thank for this code: 81Gershon Elber, Eric S. Raymond, Toshio Kuratomi.</p> 82 83<p>Before October 2006 the GIF format was encumbered by patents on the 84LZW compression it uses. This first became an issue in 1993 when the 85patent-holders made ambiguous noises about requiring royalties. For 86some time a subset of this code travelled as "libungif", supporting 87decompression but not compression. You can read a more detailed 88history <a href="history.html">here</a>.</p> 89 90<p>Note: The 5.x versions change the API slightly in a way that isn't 91compatible with older shared libraries. This was required to fix 92some known problems with the extensions API and with thread-safety.</p> 93 94<p>If you require shared-library compatibility back to ancient 95versions, build from 4.2. 4.2 and the 5.0 version are behaviorally 96almost identical; the few differences are explained <a 97href="gif_lib.html#compatibility">here</a>. 98 99<p>The SourceForge summary page (where you can download the source, 100review the project, find links to the bugtracker and mailing list 101pages, or ask to join the project as a developer) is <a 102href="https://sourceforge.net/projects/giflib/">here</a>. 103 104<p>If you appreciate this project, and especially if you make money 105from it, please <a href="https://www.patreon.com/esr">support 106continuing maintainance on Patreon</a>.</p> 107 108</body> 109</html> 110