GIFCOMPOSE(1)

NAME
gifcompose - image-composition minilanguage for GIFs

SYNOPSIS

gifcompose [-v]

DESCRIPTION

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

SPECIFICATION SYNTAX

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

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.

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:

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.

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 or comment lines may be preceded with `#' and will be ignored.

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[1].

No support for resizing or odd-angle rotations yet.

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

Error checking is rudimentary.

AUTHOR

Eric S. Raymond esr@thyrsus.com

NOTES

1.  gifflip
    [set $man.base.url.for.relative.links]/gifflip.html

2.  gifovly
    [set $man.base.url.for.relative.links]/gifovly.html