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>