1GIFSICLE(1)                 General Commands Manual                GIFSICLE(1)
2
3
4

NAME

6       gifsicle - manipulates GIF images and animations
7

SYNOPSIS

9       gifsicle [options, frames, and filenames]...
10

DESCRIPTION

12       gifsicle  is a powerful command-line program for creating, editing, ma‐
13       nipulating, and getting information about GIF images and animations.
14
15       Gifsicle normally processes input GIF files according  to  its  command
16       line  options  and writes the result to the standard output. The -i op‐
17       tion, for example, tells gifsicle to interlace its inputs:
18
19            gifsicle -i < pic.gif > interlaced-pic.gif
20
21       Gifsicle is good at creating and manipulating GIF  animations.  By  de‐
22       fault, it combines two or more input files into a “flipbook” animation:
23
24            gifsicle pic1.gif pic2.gif pic3.gif > animation.gif
25
26       Use options like --delay, --loopcount, and --optimize to tune your ani‐
27       mations.
28
29       To modify GIF files in place, use the  --batch  option.  With  --batch,
30       gifsicle  will  modify  the  files you specify instead of writing a new
31       file to the standard output. To interlace all the GIFs in  the  current
32       directory, you could say:
33
34            gifsicle --batch -i *.gif
35
36       New users may want to skip to the Examples section at the end.
37

CONCEPT INDEX

39       Concepts are on the left, relevant gifsicle options are on the right.
40
41       Animations, changing     frame selections, frame changes, etc.
42          disposal              --disposal
43          looping               --loopcount
44          portions of           frame selections
45          smaller               --optimize, --colors, --lossy
46          speed                 --delay
47       Bad output               --careful
48       Background color         --background
49       Colors, changing         --change-color,    --use-colormap,   --dither,
50                                --transform-colormap
51          reducing number       --colors, --dither, --gamma
52       Comments                 --comment
53       Extensions               --extension, --app-extension, --extension-info
54       File size                --optimize, --unoptimize, --colors, --lossy
55       Image transformations
56          cropping              --crop, --crop-transparency
57          flipping              --flip-*
58          resizing              --resize, --scale
59          rotating              --rotate-*
60       Grayscale                --use-colormap
61       Interlacing              --interlace
62       Positioning frames       --position
63       Screen, logical          --logical-screen
64       Selecting frames         frame selections (like '#0')
65       Transparency             --transparent
66       Warnings                 --no-warnings
67

COMMAND LINE

69       gifsicle's command line consists of GIF input files and  options.  Most
70       options  start with a dash (-) or plus (+); frame selections, a kind of
71       option, start with a number sign (#). Anything  else  is  a  GIF  input
72       file.
73
74       gifsicle  reads and processes GIF input files in order. If no GIF input
75       file is given, or you give the special filename ‘-’, it reads from  the
76       standard input.
77
78       gifsicle  exits with status 0 if there were no errors and status 1 oth‐
79       erwise.
80

OPTIONS

82       Every option has a long  form,  ‘--long-descriptive-name’.   You  don't
83       need  to  type  the whole long descriptive name, just enough to make it
84       unambiguous.
85
86       Some options also have a short form, ‘-X’.  You can combine  short  op‐
87       tions  if  they don't take arguments: ‘-IIb’ is the same as ‘-I -I -b’.
88       But be careful with options that do take arguments: ‘-cblah’ means  ‘-c
89       blah’, not ‘-c -b -l -a -h’.
90
91       Many  options  also have a converse, ‘--no-option’, which turns off the
92       option. You can turn off a short option ‘-X’ by saying ‘+X’ instead.
93
94   Mode Options
95       Mode options tell gifsicle what kind of output to generate.  There  can
96       be at most one, and it must precede any GIF inputs.
97
98       --merge, -m
99            Combine  all  GIF  inputs  into  one file with multiple frames and
100            write that file to the standard output. This is the default mode.
101
102       --batch, -b
103            Modify each GIF input in place by reading and writing to the  same
104            filename.   (GIFs  read from the standard input are written to the
105            standard output.)
106
107       --explode, -e
108            Create an output GIF for each frame of each input file. The output
109            GIFs are named ‘xxx.000’, ‘xxx.001’, and so on, where ‘xxx’ is the
110            name of the input file (or whatever you specified with ‘--output’)
111            and the numeric extension is the frame number.
112
113       --explode-by-name, -E
114            Same  as --explode, but write any named frames to files ‘xxx.name
115            instead  of  ‘xxx.frame-number’.   Frames  are  named  using   the
116--name’ option.
117
118   General Options
119       General  options  control  the information gifsicle prints and where it
120       writes its output. The info options and --verbose  can  be  turned  off
121       with ‘--no-X’.
122
123       --info, -I
124            Print  a human-readable description of each input GIF to the stan‐
125            dard output, or whatever file you specify with  -o.   This  option
126            suppresses normal output, and cannot be combined with mode options
127            like --batch.  If you give two --info or -I options, however,  in‐
128            formation  is  printed  to standard error, and normal output takes
129            place as usual.
130
131       --color-info, --cinfo
132            Like --info, but also print information about  input  files'  col‐
133            ormaps.
134
135       --extension-info, --xinfo
136            Like  --info,  but also print any unrecognized GIF extensions in a
137            hexdump(1)-like format.
138
139       --size-info, --sinfo
140            Like --info, but also print  information  about  compressed  image
141            sizes.
142
143       --help, -h
144            Print usage information and exit.
145
146       -o file
147       --output file
148            Send  output to file.  The special filename ‘-’ means the standard
149            output.
150
151       --verbose, -V
152            Print progress information (files read and  written)  to  standard
153            error.
154
155       --no-warnings, -w
156            Suppress all warning messages.
157
158       --no-ignore-errors
159            Exit with status 1 when encountering a very erroneous GIF. Default
160            is to muddle on.
161
162       --version
163            Print the version number and some short  non-warranty  information
164            and exit.
165
166       --careful
167            Write  slightly  larger GIFs that avoid bugs in some other GIF im‐
168            plementations. Some Java and  Internet  Explorer  versions  cannot
169            display  the correct, minimal GIFs that Gifsicle produces. Use the
170            --careful option if you are having problems with a particular  im‐
171            age.
172
173       --conserve-memory
174            Conserve  memory usage at the expense of processing time. This may
175            be useful if you are processing large GIFs on a  computer  without
176            very much memory. Or say --no-conserve-memory.
177
178       --nextfile
179            Allow  input files to contain multiple concatenated GIF images. If
180            a filename appears multiple times on the  command  line,  gifsicle
181            will  read  a  new  image from the file each time. This option can
182            help scripts avoid the need for temporary files. For  example,  to
183            create  an  animated  GIF with three frames with different delays,
184            you might run "gifsicle --nextfile -d10 - -d20 - -d30 - > out.gif"
185            and  write  the three GIF images, in sequence, to gifsicle's stan‐
186            dard input.
187
188       --multifile
189            Like --nextfile, but read as many GIF images as possible from each
190            file.  This  option is intended for scripts. For example, to merge
191            an unknown number of GIF images into a single animation, run "gif‐
192            sicle  --multifile  -  > out.gif" and write the GIF images, in se‐
193            quence, to gifsicle's standard input.  Any frame selections  apply
194            only to the last file in the concatenation.
195
196   Frame Selections
197       A  frame  selection tells gifsicle which frames to use from the current
198       input file. They are useful only for animations, as  non-animated  GIFs
199       only have one frame. Here are the acceptable forms for frame specifica‐
200       tions.
201
202       #num         Select frame num. (The first frame is ‘#0’.  Negative num‐
203                    bers count backwards from the last frame, which is ‘#-1’.)
204       #num1-num2   Select frames num1 through num2.
205       #num1-       Select frames num1 through the last frame.
206       #name        Select the frame named name.
207
208       The ‘#’ character has special meaning for many shells, so you generally
209       need to quote it.
210
211       For example,
212            gifsicle happy.gif "#0"
213       uses the first frame from happy.gif;
214            gifsicle happy.gif "#0-2"
215       uses its first three frames; and
216            gifsicle happy.gif "#-1-0"
217       uses its frames in reverse order (starting from frame #-1 --  the  last
218       frame -- and ending at frame #0 -- the first).
219
220       The  action  performed  with the selected frames depends on the current
221       mode. In merge mode, only the selected frames are merged into the  out‐
222       put  GIF.  In  batch mode, only the selected frames are modified; other
223       frames remain unchanged. In explode mode, only the selected frames  are
224       exploded into output GIFs.
225
226   Frame Change Options
227       Frame  change options insert new frames into an animation or replace or
228       delete frames that already exist. Some things -- for example,  changing
229       one frame in an animation -- are difficult to express with frame selec‐
230       tions, but easy with frame changes.
231
232       --delete frames [frames...]
233            Delete frames from the input GIF.
234
235       --insert-before frame other-GIFs
236            Insert other-GIFs before frame in the input GIF.
237
238       --append other-GIFs
239            Append other-GIFs to the input GIF.
240
241       --replace frames other-GIFs
242            Replace frames from the input GIF with other-GIFs.
243
244       --done
245            Complete the current set of frame changes.
246
247       The frames arguments are frame selections (see above). These  arguments
248       always  refer to frames from the original input GIF. So, if ‘a.gif’ has
249       3 frames and ‘b.gif’ has one, this command
250            gifsicle a.gif --delete "#0" --replace "#2" b.gif
251       will produce an output animation with 2 frames: ‘a.gif’ frame  1,  then
252       ‘b.gif’.
253
254       The  other-GIFs  arguments  are any number of GIF input files and frame
255       selections.  These images are combined in merge mode and added  to  the
256       input  GIF.  The other-GIFs last until the next frame change option, so
257       this command replaces the first frame of ‘in.gif’  with  the  merge  of
258       ‘a.gif’ and ‘b.gif’:
259            gifsicle -b in.gif --replace "#0" a.gif b.gif
260
261       This  command,  however,  replaces  the  first  frame  of ‘in.gif’ with
262       ‘a.gif’ and then processes ‘b.gif’ separately:
263            gifsicle -b in.gif --replace "#0" a.gif --done b.gif
264
265       Warning: You shouldn't use both frame selections and frame  changes  on
266       the same input GIF.
267
268   Image Options
269       Image  options  modify  input  images -- by changing their interlacing,
270       transparency, and cropping,  for  example.  Image  options  have  three
271       forms: ‘--X’, ‘--no-X’, and ‘--same-X’.  The ‘--X’ form selects a value
272       for the feature, the ‘--no-X’ form  turns  off  the  feature,  and  the
273--same-X’  form means that the feature's value is copied from each in‐
274       put.  The  default  is  always   ‘--same-X’.    For   example,   -back‐
275       ground="#0000FF"  sets  the  background  color to blue, --no-background
276       turns the background color off (by setting it to 0),  and  --same-back‐
277       ground uses input images' existing background colors. You can give each
278       option multiple times; for example,
279            gifsicle -b -O2 -i a.gif --same-interlace b.gif c.gif
280       will make ‘a.gif’ interlaced, but leave ‘b.gif’ and ‘c.gif’  interlaced
281       only if they were already.
282
283       -B color
284       --background color
285            Set  the  output GIF's background to color.  The argument can have
286            the same forms as in the --transparent option below.
287
288       --crop x1,y1-x2,y2
289       --crop x1,y1+widthxheight
290            Crop the following input frames to a smaller rectangular area. The
291            top-left  corner of this rectangle is (x1,y1); you can give either
292            the lower-right corner, (x2,y2), or the width and  height  of  the
293            rectangle. In the x1,y1+widthxheight form, width and height can be
294            zero or negative. A zero dimension means the cropping area goes to
295            the  edge  of  the image; a negative dimension brings the cropping
296            area that many pixels back  from  the  image  edge.  For  example,
297            --crop  2,2+-2x-2  will  shave 2 pixels off each side of the input
298            image. Cropping takes place before any rotation, flipping,  resiz‐
299            ing, or positioning.
300
301       --crop-transparency
302            Crop  any transparent borders off the following input frames. This
303            happens after any cropping due to the --crop option. It  works  on
304            the  raw  input images; for example, any transparency options have
305            not yet been applied.
306
307       --flip-horizontal
308       --flip-vertical
309            Flip the following frames horizontally or vertically.
310
311       -i
312       --interlace
313            Turn interlacing on.
314
315       -S widthxheight
316       --logical-screen widthxheight
317            Set  the  output  logical  screen  to  widthxheight.    --no-logi‐
318            cal-screen  sets  the  output  logical  screen  to the size of the
319            largest output frame, while --same-logical-screen sets the  output
320            logical screen to the largest input logical screen.  --screen is a
321            synonym for --logical-screen.
322
323       -p x,y
324       --position x,y
325            Set the following frames' positions to (x,y).  --no-position means
326            --position  0,0.  Normally, --position x,y places every succeeding
327            frame exactly at x,y. However, if an entire  animation  is  input,
328            x,y is treated as the position for the animation.
329
330       --rotate-90
331       --rotate-180
332       --rotate-270
333            Rotate  the following frames by 90, 180, or 270 degrees.  --no-ro‐
334            tate turns off any rotation.
335
336       -t color
337       --transparent color
338            Make color transparent in the following frames.  Color  can  be  a
339            colormap  index  (0-255),  a hexadecimal color specification (like
340            "#FF00FF" for magenta), or slash- or  comma-separated  red,  green
341            and blue values (each between 0 and 255).
342
343   Extension Options
344       Extension  options  add  non-visual information to the output GIF. This
345       includes names, comments, and generic extensions.
346
347       --app-extension app-name extension
348            Add an application extension named app-name and with the value ex‐
349            tension  to  the output GIF.  --no-app-extensions removes applica‐
350            tion extensions from the input images.
351
352       -c text
353       --comment text
354            Add a comment, text, to the output GIF. The comment will be placed
355            before  the  next frame in the stream.  --no-comments removes com‐
356            ments from the input images.
357
358       --extension number extension
359            Add an extension numbered number and with the value  extension  to
360            the  output  GIF.  Number can be in decimal, octal, hex, or it can
361            be a single  character  like  ‘n’,  whose  ASCII  value  is  used.
362            --no-extensions (or +x) removes extensions from the input images.
363
364       -n text
365       --name text
366            Set  the next frame's name to text.  This name is stored as an ex‐
367            tension in the output GIF (extension number 0xCE, followed by  the
368            characters of the frame name).  --no-names removes name extensions
369            from the input images.
370
371   Animation Options
372       Animation options apply to GIF animations, or to individual  frames  in
373       GIF  animations.  As  with  image  options, most animation options have
374       three forms, ‘--X’, ‘--no-X’, and ‘--same-X’, and you can  give  anima‐
375       tion options multiple times; for example,
376            gifsicle -b a.gif -d50 "#0" "#1" -d100 "#2" "#3"
377       sets the delays of frames 0 and 1 to 50, and frames 2 and 3 to 100.
378
379       -d time
380       --delay time
381            Set the delay between frames to time in hundredths of a second.
382
383       -D method
384       --disposal method
385            Set  the  disposal  method  for the following frames to method.  A
386            frame's disposal method determines how a viewer should remove  the
387            frame  when it's time to display the next.  Method can be a number
388            between 0 and 7 (although only 0 through 3 are generally  meaning‐
389            ful), or one of these names: none (leave the frame visible for fu‐
390            ture frames to build upon), asis (same as "none"), background  (or
391            bg)  (replace the frame with the background), or previous (replace
392            the frame with  the  area  from  the  previous  displayed  frame).
393            --no-disposal means --disposal=none.
394
395       -l[count]
396       --loopcount[=count]
397            Set the Netscape loop extension to count.  Count is an integer, or
398            forever to loop endlessly. If  you  supply  a  --loopcount  option
399            without  specifying  count, Gifsicle will use forever.  --no-loop‐
400            count (the default) turns off looping.
401
402            Set the loop count to one less than the number of times  you  want
403            the  animation  to run. An animation with --no-loopcount will show
404            every frame once; --loopcount=1 will loop once, thus showing every
405            frame  twice; and so forth.  Note that --loopcount=0 is equivalent
406            to --loopcount=forever, not --no-loopcount.
407
408       -O[level]
409       --optimize[=level]
410            Attempt to shrink the file sizes of GIF animations.  Level  deter‐
411            mines  how  much  optimization is done; higher levels take longer,
412            but may have better results. There are currently three levels:
413
414            -O1  Store only the changed portion of each image. This is the de‐
415                 fault.
416            -O2  Store  only the changed portion of each image, and use trans‐
417                 parency.
418            -O3  Try several optimization methods (usually  slower,  sometimes
419                 better results).
420
421            Other optimization flags provide finer-grained control.
422
423            -Okeep-empty
424                 Preserve  empty  transparent  frames (they are dropped by de‐
425                 fault).
426
427            You may also be interested in other options  for  shrinking  GIFs,
428            such  as  -k, --lossy, and --no-extensions.  Note that -O does not
429            guarantee to shrink file size, and in rare cases, even -O3 may ac‐
430            tually enlarge file size.
431
432       -U
433       --unoptimize
434            Unoptimize GIF animations into an easy-to-edit form.
435
436            GIF  animations  are often optimized (see --optimize) to make them
437            smaller and faster to load, which unfortunately makes them  diffi‐
438            cult  to edit.  --unoptimize changes optimized input GIFs into un‐
439            optimized GIFs, where each frame is a faithful  representation  of
440            what a user would see at that point in the animation.
441
442   Image Transformation Options
443       Image  transformation  options apply to entire GIFs as they are read or
444       written. They can be turned off with ‘--no-option’.
445
446       --resize widthxheight
447            Resize the output GIF to the given width and height.  If width  or
448            height  is an underscore ‘_’, that dimension is chosen so that the
449            aspect ratio remains unchanged.  Resizing happens after all  input
450            frames  have  been combined and before optimization. Resizing uses
451            logical screen dimensions; if the input stream has an unusual log‐
452            ical  screen (many GIF displayers ignore logical screens), you may
453            want to provide --no-logical-screen (or +S) to reset it so  gifsi‐
454            cle uses image dimensions instead. See also --resize-method.
455
456       --resize-width width
457       --resize-height height
458            Resize to a given width or height, preserving aspect ratio. Equiv‐
459            alent to --resize widthx_ or --resize _xheight.
460
461       --resize-fit widthxheight
462       --resize-touch widthxheight
463            Resize the output GIF to fit within a  rectangle  with  dimensions
464            widthxheight.   The  aspect  ratio  remains  unchanged.  The --re‐
465            size-fit option only shrinks the image—no resize is  performed  if
466            the  GIF already fits within the rectangle. Either width or height
467            may be an underscore  ‘_’,  which  leaves  that  dimension  uncon‐
468            strained.
469
470       --resize-fit-width width
471       --resize-fit-height height
472       --resize-touch-width width
473       --resize-touch-height height
474            Like --resize-fit  and --resize-touch, but constrains only one di‐
475            mension.
476
477       --scale Xfactor[xYfactor]
478            Scale the output GIF's width and height by  Xfactor  and  Yfactor.
479            If  Yfactor is not given, it defaults to Xfactor.  Scaling happens
480            after all input frames have been combined and before optimization.
481
482       --resize-method method
483            Set the method used to resize images.  The  ‘sample’  method  runs
484            very  quickly,  but  when  shrinking images, it produces noisy re‐
485            sults.  The ‘mix’ method is somewhat slower, but produces  better-
486            looking results. The default method is currently ‘mix’.
487
488            Details: The resize methods differ most when shrinking images. The
489            ‘sample’ method is a point sampler: each  pixel  position  in  the
490            output image maps to exactly one pixel position in the input. When
491            shrinking, full rows and columns from the input are  dropped.  The
492            other  methods use all input pixels, which generally produces bet‐
493            ter-looking images. The ‘box’ method, a  box  sampler,  is  faster
494            than  the  more  complex filters and produces somewhat sharper re‐
495            sults, but there will be anomalies  when  shrinking  images  by  a
496            small  amount  in  one dimension.  (Some output pixels will corre‐
497            spond to exactly 1 input row or column, while others  will  corre‐
498            spond  to  exactly 2 input rows or columns.) The ‘mix’ method is a
499            full bilinear interpolator. This is slower and  produces  somewhat
500            blurrier results, but avoids anomalies.
501
502            Gifsicle also supports more complex resamplers, including Catmull-
503            Rom cubic resampling  (‘catrom’),  the  Mitchell-Netravali  filter
504            (‘mitchell’), a 2-lobed Lanczos filter (‘lanczos2’), and a 3-lobed
505            Lanczos filter (‘lanczos3’).  These filters are slower still,  but
506            can give sharper, better results.
507
508       --resize-colors n
509            Allow  Gifsicle  to  add intermediate colors when resizing images.
510            Normally, Gifsicle's resize algorithms  use  input  images'  color
511            palettes without changes. When shrinking images with very few col‐
512            ors (e.g., pure black-and-white images), adding intermediate  col‐
513            ors  can  improve  the results. Example: --resize-colors 64 allows
514            Gifsicle to add intermediate colors for  images  that  have  fewer
515            than 64 input colors.
516
517   Color Options
518       Color  options  apply  to entire GIFs as they are read or written. They
519       can be turned off with ‘--no-option’.
520
521       -k num
522       --colors num
523            Reduce the number of distinct colors in each output GIF to num  or
524            less.   Num  must be between 2 and 256. This can be used to shrink
525            output GIFs or eliminate any local color tables.
526
527            Normally, an adaptive group of colors is chosen from the  existing
528            color  table.  You can affect this process with the --color-method
529            option or by giving your own colormap with --use-colormap.  Gifsi‐
530            cle  may  need to add an additional color (making num+1 in all) if
531            there is transparency in the image.
532
533       --color-method method
534            Determine how a smaller colormap is chosen.  ‘diversity’, the  de‐
535            fault,  is xv(1)'s diversity algorithm, which uses a strict subset
536            of the  existing  colors  and  generally  produces  good  results.
537blend-diversity’ is a modification of this: some color values are
538            blended from groups of existing colors.  ‘median-cut’ is the medi‐
539            an cut algorithm described by Heckbert.  --method is a synonym for
540            --color-method.
541
542       -f
543       --dither[=method]
544            When --dither is on and the colormap is changed,  combinations  of
545            colors  are used to approximate missing colors. This looks better,
546            but makes bigger files and can cause animation artifacts, so it is
547            off by default.
548
549            Specify  a  dithering algorithm with the optional method argument.
550            The default, ‘floyd-steinberg’, uses Floyd-Steinberg error  diffu‐
551            sion.  This usually looks best, but can cause animation artifacts,
552            because dithering choices will vary from frame to frame.  Gifsicle
553            also  supports  ordered  dithering algorithms that avoid animation
554            artifacts.  The ‘ro64’ mode uses a large,  random-looking  pattern
555            and  generally  produces  good  results.  The ‘o3’, ‘o4’, and ‘o8
556            modes use smaller,  more  regular  patterns.  The  ‘ordered’  mode
557            chooses  a  good ordered dithering algorithm. For special effects,
558            try the halftone modes ‘halftone’, ‘squarehalftone’,  and  ‘diago‐
559            nal’.  Some modes take optional parameters using commas. The half‐
560            tone modes take a cell size and  a  color  limit:  ‘halftone,10,3
561            creates  10-pixel wide halftone cells where each cell uses up to 3
562            colors.
563
564       --gamma gamma
565            Set the gamma correction to gamma, which can be a real  number  or
566srgb’.   Roughly  speaking, higher numbers exaggerate shadows and
567            lower numbers exaggerate highlights.  The default is the  function
568            defined  by  the  standard  sRGB  color space, which usually works
569            well. (Its effects are similar to --gamma=2.2.) Gifsicle uses gam‐
570            ma  correction  when  choosing a color palette (--colors) and when
571            dithering (--dither).
572
573       --lossy[=lossiness]
574            Alter image colors to shrink output file size at the cost of arti‐
575            facts  and noise.  Lossiness determines how many artifacts are al‐
576            lowed; higher values can result in smaller file sizes,  but  cause
577            more artifacts. The default lossiness is 20.
578
579       --change-color color1 color2
580            Change  color1  to  color2 in the following input GIFs. (The color
581            arguments have the same forms as in the -t option.) Change  multi‐
582            ple  colors  by  giving  the  option multiple times. Color changes
583            don't interfere with one another, so you can safely swap two  col‐
584            ors  with ‘--change-color color1 color2 --change-color color2 col‐
585            or1’.   They  all  take  effect  as  an   input   GIF   is   read.
586            --no-change-color cancels all color changes.
587
588       --transform-colormap command
589            Command  should  be a shell command that reads from standard input
590            and writes to standard output. Each colormap in the output GIF  is
591            translated  into  text  colormap format (see --use-colormap below)
592            and piped to the command. The output that command generates (which
593            should  also  be  in  text colormap format) will replace the input
594            colormap. The replacement doesn't consider color matching, so pix‐
595            els  that used color slot n in the input will still use color slot
596            n in the output.
597
598       --use-colormap colormap
599            Change the image to use colormap.  Each  pixel  in  the  image  is
600            changed  to  the closest match in colormap (or, if --dither is on,
601            to a dithered combination of colors in colormap).  Colormap can be
602            web  for  the 216-color “Web-safe palette”; gray for grayscale; bw
603            for black-and-white; or the name of a file. That file  should  ei‐
604            ther be a text file (the format is described below) or a GIF file,
605            whose global colormap will be used. If --colors=N is  also  given,
606            an N-sized subset of colormap will be used.
607
608            Text colormap files use this format:
609
610            ; each non-comment line represents one color, "red green blue"
611            ; each component should be between 0 and 255
612            0 0 0            ; like this
613            255 255 255
614            ; or use web hex notation
615            #ffffff          ; like this

EXAMPLES

617       First, let's create an animation, ‘anim.gif’:
618
619            gifsicle a.gif b.gif c.gif d.gif > anim.gif
620
621       This animation will move very quickly: since we didn't specify a delay,
622       a browser will cycle through the frames as fast as it can.  Let's  slow
623       it down and pause .5 seconds between frames, using the --delay option.
624
625            gifsicle --delay 50 a.gif b.gif c.gif d.gif > anim.gif
626
627       If we also want the GIF to loop three times, we can use --loopcount:
628
629            gifsicle -d 50 --loop=3 a.gif b.gif c.gif d.gif > anim.gif
630
631       (Rather  than type --delay again, we used its short form, -d.  Many op‐
632       tions have short forms; you can see them by running ‘gifsicle  --help’.
633       We  also  abbreviated --loopcount to --loop, which is OK since no other
634       option starts with ‘loop’.)
635
636       To explode ‘anim.gif’ into its component frames:
637
638            gifsicle --explode anim.gif
639            ls anim.gif*
640            anim.gif  anim.gif.000  anim.gif.001  anim.gif.002  anim.gif.003
641
642       To optimize ‘anim.gif’:
643
644            gifsicle -b -O2 anim.gif
645
646       To change the second frame of ‘anim.gif’ to ‘x.gif’:
647
648            gifsicle -b --unoptimize -O2 anim.gif --replace "#1" x.gif
649
650       --unoptimize is used since ‘anim.gif’ was optimized in the  last  step.
651       Editing  individual frames in optimized GIFs is dangerous without --un‐
652       optimize; frames following the changed frame could be corrupted by  the
653       change.  Of course, this might be what you want.
654
655       Note  that --unoptimize and --optimize can be on simultaneously.  --un‐
656       optimize affects input GIF files, while --optimize affects  output  GIF
657       files.
658
659       To print information about the first and fourth frames of ‘anim.gif’:
660
661            gifsicle -I "#0" "#3" < anim.gif
662
663       To  make black the transparent color in all the GIFs in the current di‐
664       rectory, and also print information about each:
665
666            gifsicle -bII --trans "#000000" *.gif
667
668       Giving -I twice forces normal output to occur. With only  one  -I,  the
669       GIFs would not be modified.
670
671       To change ‘anim.gif’ to use a 64-color subset of the Web-safe palette:
672
673            gifsicle -b --colors=64 --use-col=web anim.gif
674
675       To make a dithered black-and-white version of ‘anim.gif’:
676
677            gifsicle --dither --use-col=bw anim.gif > anim-bw.gif
678
679       To  overlay  one  GIF  atop another -- producing a one-frame output GIF
680       that looks like the superposition of the two  inputs  --  use  gifsicle
681       twice:
682
683            gifsicle bottom.gif top.gif | gifsicle -U "#1" > result.gif
684

BUGS

686       Some optimized output GIFs may appear incorrectly on some GIF implemen‐
687       tations (for example, Java's); see the --careful option.
688
689       Please   email   suggestions,   additions,   patches   and   bugs    to
690       ekohler@gmail.com.
691

SEE ALSO

693       For  a tutorial on GIF images and animations, you might try some of the
694       resources listed on-line at webreference.com:
695       http://www.webreference.com/authoring/graphics/animation.html
696

AUTHORS

698       Eddie Kohler <ekohler@gmail.com>
699       http://www.read.seas.harvard.edu/~kohler/
700       He wrote it.
701
702       Anne Dudfield <annied@frii.com>
703       http://www.frii.com/~annied/
704       She named it.
705
706       Hans Dinsen-Hansen <dino@danbbs.dk>
707       http://www.danbbs.dk/~dino/
708       Adaptive tree method for GIF writing.
709
710       Kornel Lesinski
711       --lossy option.
712
713       http://www.lcdf.org/gifsicle/
714       The gifsicle home page.
715
716
717
718Version 1.93                     11 July 2017                      GIFSICLE(1)
Impressum