xref: /aosp_15_r20/external/giflib/doc/index.html.in (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 ISO-fashion: 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// get last modified date of the
26// current document.
27//
28function date_lastmodified()
29{
30  var lmd = document.lastModified;
31  var s   = "Unknown";
32  var d1;
33
34  // check if we have a valid date
35  // before proceeding
36  if(0 != (d1=Date.parse(lmd)))
37  {
38    s = "" + date_ddmmmyyyy(new Date(d1));
39  }
40
41  return s;
42}
43// End
44</script>
45</head>
46<body>
47<table width='100%' cellpadding='0' summary='Canned page header' bgcolor="#ddd">
48<tr>
49<td><h2>The GIFLIB project</h2></td>
50<td align="center"><img src="giflib-logo.gif"></td>
51<td align='right'><script type="text/javascript">
52document.write(date_lastmodified());
53</script></td>
54</tr>
55</table>
56
57<p>The GIFLIB project maintains the giflib service library, which has
58been pulling images out of GIFs since 1989. It is deployed everywhere
59you can think of and some places you probably can't - graphics
60applications and web browsers on multiple operating systems, game
61consoles, smartphones, and likely your ATM too.</p>
62
63<p>Yes, this code is he reason GIFs were in Mosaic, the first web
64browser that could do inline graphics; it is the implementation
65Andreesen and Bina used.</p>
66
67<p>This is very mature, stable, small-footprint code with minimal
68dependencies (suitable for use in embedded deployments) that needs only
69occasional very minor bugfixes. Test reports from odd platforms and
70better regression tests are particularly welcome. Don't try to
71redesign it, applications beyond counting would break if you did.</p>
72
73<p>It's "GIFLIB" in caps as a nod to the code's origins in the dark
74and backward abysm of MS-DOS, but Unix hackers are encouraged to spell it
75"giflib" in deference to local conventions. :-)
76
77<p>Before October 2006 the GIF format was encumbered by patents on the
78LZW compression it uses.  This first became an issue in 1993 when the
79patent-holders made ambiguous noises about requiring royalties.  For
80some time a subset of this code travelled as "libungif", supporting
81decompression but not compression. You can read a more detailed
82history <a href="history.html">here</a>.</p>
83
84<p>Note: The 5.x versions change the API slightly in a way that isn't
85compatible with older shared libraries.  This was required to fix
86some known problems with the extensions API and with thread-safety.</p>
87
88<p>If you require shared-library compatibility back to ancient
89versions, build from 4.2. 4.2 and the 5.0 version are behaviorally
90almost identical; the few differences are explained <a
91href="gif_lib.html#compatibility">here</a>.
92
93<p>The SourceForge summary page (where you can download the source,
94review the project, find links to the bugtracker  and mailing list
95pages, or ask to join the project as a developer) is <a
96href="https://sourceforge.net/projects/giflib/">here</a>.
97
98<p>People to thank for this code: Gershon Elber, Eric S. Raymond,
99Toshio Kuratomi.</p>
100
101<p>If you appreciate this project, and especially if you make money
102from it, please <a href="https://www.patreon.com/esr">support
103continuing maintainance on Patreon</a>.</p>
104
105<p>GIFLIB technical documentation:</p>
106<ul>
107<li><a href="intro.html">GIFLIB documentation</a></li>
108<li><a href="history.html">GIFLIB's history</a></li>
109<li><a href="gif_lib.html#compatibility">Difference between 4.2 and 5.0</a></li>
110<li><a href="https://sourceforge.net/projects/giflib/">SourceForge project page</a></li>
111<li><a href="https://www.patreon.com/esr">Support this project</a></li>
112</ul>
113
114<p>GIF resources:</p>
115<ul>
116<li><a href="whatsinagif/index.html">What's In A GIF?</a></li>
117<li><a href="gifstandard/GIF89a.html">The GIF standard</a></li>
118<li><a href="gifstandard/LZW-and-GIF-explained.html">LZW and GIF explained</a></li>
119<li><a href="https://en.wikipedia.org/wiki/GIF">Wikipedia on GIF</a></li>
120</ul>
121
122<p>To support this ubiquitous code, <a href="https://www.patreon.com/bePatron?u=962938" data-patreon-widget-type="become-patron-button">Become a Patreon patron!</a><script async src="https://c6.patreon.com/becomePatronButton.bundle.js"></script></p>
123
124</body>
125</html>
126