1*324bb76bSAndroid Build Coastguard Worker<?xml version="1.0" encoding="ISO-8859-1"?> 2*324bb76bSAndroid Build Coastguard Worker<!DOCTYPE article PUBLIC 3*324bb76bSAndroid Build Coastguard Worker "-//OASIS//DTD DocBook XML V4.1.2//EN" 4*324bb76bSAndroid Build Coastguard Worker "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [ 5*324bb76bSAndroid Build Coastguard Worker<!ENTITY homepage "http://catb.org/~esr/"> 6*324bb76bSAndroid Build Coastguard Worker<!ENTITY email "[email protected]"> 7*324bb76bSAndroid Build Coastguard Worker]> 8*324bb76bSAndroid Build Coastguard Worker<article><title>Introduction to GIFLIB</title> 9*324bb76bSAndroid Build Coastguard Worker 10*324bb76bSAndroid Build Coastguard Worker<articleinfo> 11*324bb76bSAndroid Build Coastguard Worker 12*324bb76bSAndroid Build Coastguard Worker<author> 13*324bb76bSAndroid Build Coastguard Worker <firstname>Eric</firstname> 14*324bb76bSAndroid Build Coastguard Worker <othername>Steven</othername> 15*324bb76bSAndroid Build Coastguard Worker <surname>Raymond</surname> 16*324bb76bSAndroid Build Coastguard Worker <affiliation> 17*324bb76bSAndroid Build Coastguard Worker <orgname><ulink url="&homepage;"> 18*324bb76bSAndroid Build Coastguard Worker Thyrsus Enterprises</ulink></orgname> 19*324bb76bSAndroid Build Coastguard Worker <address> 20*324bb76bSAndroid Build Coastguard Worker <email>&email;</email> 21*324bb76bSAndroid Build Coastguard Worker </address> 22*324bb76bSAndroid Build Coastguard Worker </affiliation> 23*324bb76bSAndroid Build Coastguard Worker</author> 24*324bb76bSAndroid Build Coastguard Worker<copyright> 25*324bb76bSAndroid Build Coastguard Worker <year>2012</year> 26*324bb76bSAndroid Build Coastguard Worker <holder role="mailto:&email;">Eric S. Raymond</holder> 27*324bb76bSAndroid Build Coastguard Worker</copyright> 28*324bb76bSAndroid Build Coastguard Worker 29*324bb76bSAndroid Build Coastguard Worker</articleinfo> 30*324bb76bSAndroid Build Coastguard Worker 31*324bb76bSAndroid Build Coastguard Worker<para>GIFLIB is a package of portable tools and library routines for 32*324bb76bSAndroid Build Coastguard Workerworking with GIF images.</para> 33*324bb76bSAndroid Build Coastguard Worker 34*324bb76bSAndroid Build Coastguard Worker<para>The Graphics Interchange Format(c) specification is the copyrighted 35*324bb76bSAndroid Build Coastguard Workerproperty of CompuServe Incorporated. GIF(sm) is a service mark 36*324bb76bSAndroid Build Coastguard Workerproperty of CompuServe Incorporated.</para> 37*324bb76bSAndroid Build Coastguard Worker 38*324bb76bSAndroid Build Coastguard Worker<para>This package has been released under an X Consortium-like open-source 39*324bb76bSAndroid Build Coastguard Workerlicense. Use and copy as you see fit. If you make useful changes, 40*324bb76bSAndroid Build Coastguard Workeradd new tools, or find and fix bugs, please send your mods to the 41*324bb76bSAndroid Build Coastguard Workermaintainers for general distribution.</para> 42*324bb76bSAndroid Build Coastguard Worker 43*324bb76bSAndroid Build Coastguard Worker<para>The util directory includes programs to clip, rotate, scale, and 44*324bb76bSAndroid Build Coastguard Workerposition GIF images. These are no replacement for an interactive graphics 45*324bb76bSAndroid Build Coastguard Workereditor, but they can be very useful for scripted image generation or 46*324bb76bSAndroid Build Coastguard Workertransformation.</para> 47*324bb76bSAndroid Build Coastguard Worker 48*324bb76bSAndroid Build Coastguard Worker<para>The library includes program-callable entry points for reading and writing 49*324bb76bSAndroid Build Coastguard WorkerGIF files, an 8x8 utility font for embedding text in GIFs, and an error 50*324bb76bSAndroid Build Coastguard Workerhandler. GIF manipulation can be done at a relatively low level by 51*324bb76bSAndroid Build Coastguard Workersequential I/O (which automatically does/undoes image compression) or at 52*324bb76bSAndroid Build Coastguard Workera higher level by slurping an entire GIF into allocated core.</para> 53*324bb76bSAndroid Build Coastguard Worker 54*324bb76bSAndroid Build Coastguard Worker<para>This library speaks both GIF87a and GIF89. The differences 55*324bb76bSAndroid Build Coastguard Workerbetween GIF87 and GIF89 are minor: in the latter, the interpretation 56*324bb76bSAndroid Build Coastguard Workerof some extension block types is defined. The library never needs to 57*324bb76bSAndroid Build Coastguard Workeractually interpret these, but <ulink 58*324bb76bSAndroid Build Coastguard Workerurl="giftext.html">giftext</ulink> notices them and there are 59*324bb76bSAndroid Build Coastguard Workerfunctions in the API to read and modify them.</para> 60*324bb76bSAndroid Build Coastguard Worker 61*324bb76bSAndroid Build Coastguard Worker<sect1><title>Utilities</title> 62*324bb76bSAndroid Build Coastguard Worker 63*324bb76bSAndroid Build Coastguard Worker<para>Here is a summary of the utilities in this package. If you're looking 64*324bb76bSAndroid Build Coastguard Workerat this page through a web browser, each utility name should be a 65*324bb76bSAndroid Build Coastguard Workerhotlink to HTML documentation.</para> 66*324bb76bSAndroid Build Coastguard Worker 67*324bb76bSAndroid Build Coastguard Worker<para>Most utilities have a -v (verbose) option that will cause them to print 68*324bb76bSAndroid Build Coastguard Workerthe current input scan line number (counting up) whenever they read 69*324bb76bSAndroid Build Coastguard Workerimage input, and will print output image line number (counting down) 70*324bb76bSAndroid Build Coastguard Workerwhen they dump output. Utilities that only read or write always print 71*324bb76bSAndroid Build Coastguard Workerin increasing order.</para> 72*324bb76bSAndroid Build Coastguard Worker 73*324bb76bSAndroid Build Coastguard Worker<!-- 74*324bb76bSAndroid Build Coastguard WorkerNote: the giflib.1 man page is deliberately omitted from the following 75*324bb76bSAndroid Build Coastguard Workerlist of references. It's meant to be seen through man(1) only as part 76*324bb76bSAndroid Build Coastguard Workerof a local installation of the tools. 77*324bb76bSAndroid Build Coastguard Worker--> 78*324bb76bSAndroid Build Coastguard Worker 79*324bb76bSAndroid Build Coastguard Worker<sect2><title>Conversion Utilities</title> 80*324bb76bSAndroid Build Coastguard Worker 81*324bb76bSAndroid Build Coastguard Worker<variablelist> 82*324bb76bSAndroid Build Coastguard Worker<varlistentry> 83*324bb76bSAndroid Build Coastguard Worker<term><ulink url="gif2rgb.html">gif2rgb</ulink></term> 84*324bb76bSAndroid Build Coastguard Worker<listitem> 85*324bb76bSAndroid Build Coastguard Worker<para>convert images saved as GIF to 24-bit RGB image(s) or vice-versa</para> 86*324bb76bSAndroid Build Coastguard Worker</listitem> 87*324bb76bSAndroid Build Coastguard Worker</varlistentry> 88*324bb76bSAndroid Build Coastguard Worker</variablelist> 89*324bb76bSAndroid Build Coastguard Worker 90*324bb76bSAndroid Build Coastguard Worker</sect2> 91*324bb76bSAndroid Build Coastguard Worker<sect2><title>Image Manipulation Components</title> 92*324bb76bSAndroid Build Coastguard Worker 93*324bb76bSAndroid Build Coastguard Worker<variablelist> 94*324bb76bSAndroid Build Coastguard Worker<varlistentry> 95*324bb76bSAndroid Build Coastguard Worker<term><ulink url="gifclrmp.html">gifclrmp</ulink></term> 96*324bb76bSAndroid Build Coastguard Worker<listitem> 97*324bb76bSAndroid Build Coastguard Worker<para>modify GIF image colormaps</para> 98*324bb76bSAndroid Build Coastguard Worker</listitem> 99*324bb76bSAndroid Build Coastguard Worker</varlistentry> 100*324bb76bSAndroid Build Coastguard Worker<varlistentry> 101*324bb76bSAndroid Build Coastguard Worker<term><ulink url="giffix.html">giffix</ulink></term> 102*324bb76bSAndroid Build Coastguard Worker<listitem> 103*324bb76bSAndroid Build Coastguard Worker<para>clumsily attempts to fix truncated GIF images</para> 104*324bb76bSAndroid Build Coastguard Worker</listitem> 105*324bb76bSAndroid Build Coastguard Worker</varlistentry> 106*324bb76bSAndroid Build Coastguard Worker</variablelist> 107*324bb76bSAndroid Build Coastguard Worker 108*324bb76bSAndroid Build Coastguard Worker</sect2> 109*324bb76bSAndroid Build Coastguard Worker<sect2><title>Report Generators</title> 110*324bb76bSAndroid Build Coastguard Worker 111*324bb76bSAndroid Build Coastguard Worker<variablelist> 112*324bb76bSAndroid Build Coastguard Worker<varlistentry> 113*324bb76bSAndroid Build Coastguard Worker<term><ulink url="giftext.html">giftext</ulink></term> 114*324bb76bSAndroid Build Coastguard Worker<listitem> 115*324bb76bSAndroid Build Coastguard Worker<para>print (text only) general information about a GIF</para> 116*324bb76bSAndroid Build Coastguard Worker</listitem> 117*324bb76bSAndroid Build Coastguard Worker</varlistentry> 118*324bb76bSAndroid Build Coastguard Worker</variablelist> 119*324bb76bSAndroid Build Coastguard Worker 120*324bb76bSAndroid Build Coastguard Worker</sect2> 121*324bb76bSAndroid Build Coastguard Worker<sect2><title>GIF Composition Tools</title> 122*324bb76bSAndroid Build Coastguard Worker 123*324bb76bSAndroid Build Coastguard Worker<variablelist> 124*324bb76bSAndroid Build Coastguard Worker<varlistentry> 125*324bb76bSAndroid Build Coastguard Worker<term><ulink url="gifbuild.html">gifbuild</ulink></term> 126*324bb76bSAndroid Build Coastguard Worker<listitem> 127*324bb76bSAndroid Build Coastguard Worker<para>converter/deconverter to/from an editable text format</para> 128*324bb76bSAndroid Build Coastguard Worker</listitem> 129*324bb76bSAndroid Build Coastguard Worker</varlistentry> 130*324bb76bSAndroid Build Coastguard Worker<varlistentry> 131*324bb76bSAndroid Build Coastguard Worker<term><ulink url="giftool.html">giftool</ulink></term> 132*324bb76bSAndroid Build Coastguard Worker<listitem> 133*324bb76bSAndroid Build Coastguard Worker<para>GIF transformation tool</para> 134*324bb76bSAndroid Build Coastguard Worker</listitem> 135*324bb76bSAndroid Build Coastguard Worker</varlistentry> 136*324bb76bSAndroid Build Coastguard Worker</variablelist> 137*324bb76bSAndroid Build Coastguard Worker 138*324bb76bSAndroid Build Coastguard Worker</sect2> 139*324bb76bSAndroid Build Coastguard Worker<sect2><title>Obsolete utilities</title> 140*324bb76bSAndroid Build Coastguard Worker 141*324bb76bSAndroid Build Coastguard Worker<para>These are used for testing by the GFLIB developers and no longer 142*324bb76bSAndroid Build Coastguard Workerinstalled by a normal build.</para> 143*324bb76bSAndroid Build Coastguard Worker 144*324bb76bSAndroid Build Coastguard Worker<variablelist> 145*324bb76bSAndroid Build Coastguard Worker<varlistentry> 146*324bb76bSAndroid Build Coastguard Worker<term><ulink url="gifbg.html">gifbg</ulink></term> 147*324bb76bSAndroid Build Coastguard Worker<listitem> 148*324bb76bSAndroid Build Coastguard Worker<para>generate a single-color test pattern GIF</para> 149*324bb76bSAndroid Build Coastguard Worker</listitem> 150*324bb76bSAndroid Build Coastguard Worker</varlistentry> 151*324bb76bSAndroid Build Coastguard Worker<varlistentry> 152*324bb76bSAndroid Build Coastguard Worker<term><ulink url="gifcolor.html">gifcolor</ulink></term> 153*324bb76bSAndroid Build Coastguard Worker<listitem> 154*324bb76bSAndroid Build Coastguard Worker<para>generate color test patterns</para> 155*324bb76bSAndroid Build Coastguard Worker</listitem> 156*324bb76bSAndroid Build Coastguard Worker</varlistentry> 157*324bb76bSAndroid Build Coastguard Worker<varlistentry> 158*324bb76bSAndroid Build Coastguard Worker<term><ulink url="gifwedge.html">gifwedge</ulink></term> 159*324bb76bSAndroid Build Coastguard Worker<listitem> 160*324bb76bSAndroid Build Coastguard Worker<para>create a test GIF image resembling a color monitor test pattern</para> 161*324bb76bSAndroid Build Coastguard Worker</listitem> 162*324bb76bSAndroid Build Coastguard Worker</varlistentry> 163*324bb76bSAndroid Build Coastguard Worker<varlistentry> 164*324bb76bSAndroid Build Coastguard Worker<term><ulink url="gifhisto.html">gifhisto</ulink></term> 165*324bb76bSAndroid Build Coastguard Worker<listitem> 166*324bb76bSAndroid Build Coastguard Worker<para>generate color-frequency histogram from a GIF</para> 167*324bb76bSAndroid Build Coastguard Worker</listitem> 168*324bb76bSAndroid Build Coastguard Worker</varlistentry> 169*324bb76bSAndroid Build Coastguard Worker<varlistentry> 170*324bb76bSAndroid Build Coastguard Worker<term><ulink url="gifecho.html">gifecho</ulink></term> 171*324bb76bSAndroid Build Coastguard Worker<listitem> 172*324bb76bSAndroid Build Coastguard Worker<para>generate GIF images out of regular text in 8x8 font</para> 173*324bb76bSAndroid Build Coastguard Worker</listitem> 174*324bb76bSAndroid Build Coastguard Worker</varlistentry> 175*324bb76bSAndroid Build Coastguard Worker<varlistentry> 176*324bb76bSAndroid Build Coastguard Worker<term><ulink url="gifinto.html">gifinto</ulink></term> 177*324bb76bSAndroid Build Coastguard Worker<listitem> 178*324bb76bSAndroid Build Coastguard Worker<para>end-of-pipe fitting for GIF-processing pipelines</para> 179*324bb76bSAndroid Build Coastguard Worker</listitem> 180*324bb76bSAndroid Build Coastguard Worker</varlistentry> 181*324bb76bSAndroid Build Coastguard Worker</variablelist> 182*324bb76bSAndroid Build Coastguard Worker 183*324bb76bSAndroid Build Coastguard Worker 184*324bb76bSAndroid Build Coastguard Worker</sect2> 185*324bb76bSAndroid Build Coastguard Worker</sect1> 186*324bb76bSAndroid Build Coastguard Worker<sect1><title>Library Functions</title> 187*324bb76bSAndroid Build Coastguard Worker 188*324bb76bSAndroid Build Coastguard Worker<para>The library contains two groups of C functions. One group does 189*324bb76bSAndroid Build Coastguard Workersequential I/O on the stream-oriented GIF format. The other supports 190*324bb76bSAndroid Build Coastguard Workergrabbing an entire GIF into allocated core, operating on it in core, 191*324bb76bSAndroid Build Coastguard Workerand then writing the modified in-core GIF out to disk.</para> 192*324bb76bSAndroid Build Coastguard Worker 193*324bb76bSAndroid Build Coastguard Worker<para>Unless you are on extremely memory-limited machine, you probably want 194*324bb76bSAndroid Build Coastguard Workerto use the second group.</para> 195*324bb76bSAndroid Build Coastguard Worker 196*324bb76bSAndroid Build Coastguard Worker<para>Detailed documentation on the library entry points is in <ulink 197*324bb76bSAndroid Build Coastguard Workerurl="gif_lib.html">gif_lib.html</ulink>.</para> 198*324bb76bSAndroid Build Coastguard Worker 199*324bb76bSAndroid Build Coastguard Worker</sect1> 200*324bb76bSAndroid Build Coastguard Worker<sect1><title>The GIF Standard</title> 201*324bb76bSAndroid Build Coastguard Worker 202*324bb76bSAndroid Build Coastguard Worker<para>The doc subdirectory includes an <ulink 203*324bb76bSAndroid Build Coastguard Workerurl="gifstandard/GIF89a.html">HTML presentation of the GIF 204*324bb76bSAndroid Build Coastguard Workerstandard</ulink>; an <ulink url="gifstandard/ 205*324bb76bSAndroid Build Coastguard WorkerLZW-and-GIF-explained.html">explanation of Lempel-Ziv 206*324bb76bSAndroid Build Coastguard Workercompression</ulink>, and the original flat-ASCII description of <ulink 207*324bb76bSAndroid Build Coastguard Workerurl="gifstandard/gif89.txt">GIF89 format</ulink> . For historical 208*324bb76bSAndroid Build Coastguard Workercompleteness, we also include a copy of the <ulink 209*324bb76bSAndroid Build Coastguard Workerurl="gifstandard/gif87.txt">GIF87 standard.</ulink></para> 210*324bb76bSAndroid Build Coastguard Worker 211*324bb76bSAndroid Build Coastguard Worker<para>You can also read a <ulink url="whatsinagif/index.html"> 212*324bb76bSAndroid Build Coastguard Workerdetailed narrative description</ulink> of how GIFs are laid out. It 213*324bb76bSAndroid Build Coastguard Workerclarifies some points on which the standard is obscure.</para> 214*324bb76bSAndroid Build Coastguard Worker 215*324bb76bSAndroid Build Coastguard Worker</sect1> 216*324bb76bSAndroid Build Coastguard Worker<sect1><title>Package Status</title> 217*324bb76bSAndroid Build Coastguard Worker 218*324bb76bSAndroid Build Coastguard Worker<para>GIFLIB's current maintainer is Eric S. Raymond. You can find his home 219*324bb76bSAndroid Build Coastguard Workerpage at <ulink url="&homepage;">&homepage;</ulink>.</para> 220*324bb76bSAndroid Build Coastguard Worker 221*324bb76bSAndroid Build Coastguard Worker<para>GIFLIB is not under active development, but bug fixes are being 222*324bb76bSAndroid Build Coastguard Workeraccepted.</para> 223*324bb76bSAndroid Build Coastguard Worker 224*324bb76bSAndroid Build Coastguard Worker</sect1> 225*324bb76bSAndroid Build Coastguard Worker</article> 226