Go to index page.

gifcompose

The gifcompose program uses the GIFLIB utility tools to support a minilanguage for describing GIF pasteup sequences.

Usage:

gifcompose [-v] <specfile

Specification Syntax

The gifcompose tool takes a series of text lines and interprets them as commands to do pasteup operations. The commands are:

Generators

gif <name>
Paste in <name>.gif

raw <name> <width> <height>
Paste in the given raw-format file (no suffix supplied). Raw format is a stream of 8-bit indices into the EGA color map. Accordingly, the width and height must be specified, and the source must be exactly width times height bytes long.

rgb <name> <width> <height>
Paste in the given RGB-format file (no suffix supplied). Raw format is a stream of 24-bit color values. Accordingly, the width and height must be specified, and the source must be exactly 3 times width times height bytes long.

rle <name>
Paste in the given RLE-format file (no suffix supplied). This converts the Utah Raster Kit format to GIF.

text <text> [foreground <index>] [color <r> <g> <b>]
Copy 8x8 monospace font, with transparent background and index 1 as foreground. If the text string contains whitespaces, they must be escaped or the string must be quoted (shell conventions).

The optional suffix `foreground <n>' sets the foreground color index. The optional suffix `color <r> <g> <b>' sets the RGB color to be used for the foreground index.

Each generator operation may be followed by any combination of the following suffixes:

Modifiers

at <x> <y>
Place the image at the given (upper-left-hand-corner) coordinates in the pasted-up result.

clip <name> <top-x> <top-y> <bottom-x> <bottom-y>
Clip image using the given rectange, paste it onto.

xflip
Flip the image around the X axis before placing it.

yflip
Flip the image around the Y axis before placing it.

left
Rotate the image 90 degrees counterclockwise before placing it.

right
Rotate the image 90 degrees clockwise before placing it.

Target Operations

screen size <x-size> <y-size>
Set the global screen size of the final image.

screen position <x> <y>
Set the global screen position of the final image.

Comments

Comments or comment lines may be preceded with `#' and will be ignored.

Memory required:

Proportional to the size of the largest pasted image.

Options:

[-v]
Emit a report on each composition action to stderr as it happens.

Bugs:

The suffix sequence `left left' sometimes mysteriously fails to work, probably due to some restriction in gifflip.

No support for resizing or odd-angle rotations yet.

The `color' suffix of text is a no-op, because the present version of gifovly throws away color tables.

Error checking is rudimentary.

Author:

Eric S. Raymond <esr@snark.thyrsus.com>
Eric S. Raymond <esr@snark.thyrsus.com>