xref: /aosp_15_r20/external/giflib/doc/index.html (revision 324bb76b8d05e2a05aa88511fff61cf3f9ca5892)
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