WHIRLGIF(1)WHIRLGIF(1)NAMEwhirlgif - reads a series of GIF87a or GIF89a files, and produces one
single GIF89a file composed of those images.
SYNOPSISwhirlgif [global-options] [file-options {GIFfile|-i incfile}] ...
The global-options are one or more of:
-v
-trans index
-background {color|index}
-time delay
-globmap
-minimize
-o outfile
-loop [count]
-comment comment
-disp method
The file-options are one or more of:
-off x:y-pair
-trans {color|index}
-time delay
-disp method
DESCRIPTION
When Whirlgif processes a series of GIF files, the first file defines
the so called screen size and the background color of the resulting
GIF. The background color may be changed by an option.
The input files may be in either GIF87a or GIF89a format. If a GIF
file contains more than one image, only the first image is read. To
help saving bandwidth on the internet, there are options for forcing
all GIFs in the series to use the same color map and to create sub-GIFs
which only give the difference between one image and the next.
OPTIONS-v Verbose mode. Output is written to the error out file. This is
a global option and must be given before any GIFfiles.
-trans index|color
Set the color identified with index or the color code #xxxxxx,
where xxxxxx is a hex RGB index to be transparent. When this
option is used as a file-option, its setting is valid for all
subsequent GIFfiles, until it is used again.
-background index
Set the color identified with its index to be the background
color, possibly overriding the background color defined in the
first GIFfile. This is a global option and must be given before
any GIFfiles.
-time delay
Defines inter-frame timing in units of 1/100 second. Whenever a
value of delay is set by means of the -time option, this value
will be valid for the following GIFfiles until a new value is
set.
-globmap
Use the color map of the first GIFfile as the global color map
throughout the outfile. If the color maps of subsequent GIF‐
files contain colors that are not in the global color map, the
nearest colors in a 3 dimensional RGB space will be chosen.
This is a global option and must be given before any GIFfiles.
-minimize
Only the smallest rectangles covering the difference between two
GIFfiles will be output. All GIFfiles must be of the same size
and have the same offset. This is tested, and may result in an
error message. This is a global option and must be given before
any GIFfiles.
As a side effect, the -minimize option forces the same
(global)color map to be used throughout the outfile.
-o outfile
Write the results to outfile This is a global option and must be
given before any GIFfiles.
-loop [count]
Add the Netscape 'loop' extension. If count is omitted, 0
(zero) is assumed. This is a global option and must be given
before any GIFfiles.
-comment comment
Define a Comment Extension block within the resulting GIF file.
This block will be written at the end of the file. A comment
block can be at most 254 characters long, including line shifts.
It may be used for copyright notices. This is a global option
and must be given before any GIFfiles.
-disp method
Sets the image 'disposal' method. When this option is used as a
file-option, its setting is valid for all subsequent GIFfiles,
until it is used again. The methods may be one of the keywords:
none No disposal specified.
back Restore to background color. Fill the image's space with
the background color.
prev Restore to previous, restores the screen area to what was
there before. Netscape has a problem with this option.
not Do not dispose. The default, the next image will overlay
this one.
-i incfile
Read a list of names from incfile
-off x:y-pair
Sets the position of the next GIFfile or the set of GIFfiles in
an incfile.
The x:y-pair consists of two integers, separated by one charac‐
ter which cannot be part of a number. A colon, ':' is pre‐
ferred. The two integers define the position of the upper left
corner of the next image within the 'screen' of the resulting
GIF. The integers are added to a possible offset within the
next GIFfile. One or both may be negative. Negative numbers
will re-position an image upwards and/or to the left within its
own 'screen'. The 'screen' of a GIF is the term used in the GIF
definitions for the area, a GIF covers.
TIPS
If you don't specify an output file, the GIF will be sent to stdout.
This is a good thing if you're using whirlgif in a CGI script, but
could cause problems if you run from a terminal and forget to redirect
stdout.
The output file (if any) and the loop option MUST be specified before
any GIF images.
You can specify several delay statements on the command line to change
the delay between images in the middle of an animation, e.g.
whirlgif-time 25 a.gif b.gif c.gif -time 100 d.gif -time 25 e.gif f.gif
Usually, the bacground color is defined by the first GIFfile, and often
it is index number zero (0). If you are animating with a transparent
color, a good method is usually to use the same color as the back‐
ground.
It is possible, but may cause problems for some programs, to specify
several transparency statements on the command line.
The size of the resulting GIF and the global color map is defined by
the first GIFfile. If you have a large background GIF and have several
smaller GIFs, you may make some kind of a bulletin board by a command
of the following form:
whirlgif large.gif -off 77:44 small1.gif -off 22:99 small2.giff ...
You may build in some timing between the small GIFs.
LIMITATIONS
The loop 'count' is ineffective because Netspcape always loops infin‐
itely.
BUGS
Whirlgif should be able to specify delay and offset in an 'incfile'
list (see next bug).
Does not handle filenames starting with a - (hypen), except in 'inc‐
file'.
TODO
- Make a graphic interface. Perhaps by re-implementing the algo‐
rithms in Java(tm).
- option for other choices of unification methods for colormaps. The
nearest point in the 3 dimensional RGB color space may not be the best
choice.
- define extension block in order to have frame lists.
- define single-letter options and use getopt(3) like most UNIX pro‐
grams.
AVAILABILITY
This program is available via the archive for comp.soruces.unix
http://sources.isc.org/ (and also via http://www.danbbs.dk/~dino/whirl‐
gif/ ).
AUTHORs
V3.00 - 3.04 Hans Dinsen-Hansen <dino@danbbs.dk>
Based on Whirlgif V2.02 by Kevin Kadow <kadokev@msg.net>
& Hans Dinsen-Hansen <dino@danbbs.dk>
which is again based on 'txtmerge' written by:
Mark Podlipec <podlipec@BayNetworks.com>
Man Page by Mintak Ng <mintak@hitak.com>
& Hans Dinsen-Hansen <dino@danbbs.dk>
COPYRIGHT NOTICES
The Graphics Interchange Format (c) is the Copyright property of Com‐
puserve Incorporated. GIF(sm) is a Service Mark property of Compuserve
Incorporated.
See other Copyright notices in the accompanying texts.
7th Edition February 1999 WHIRLGIF(1)