GIMP Image Pipe Format

The gih format is use to store a series of brushes, and some extra info for how to use them.

The format is real simple: it is a text header, followed by a series of gbr files, all concatenated together.

An image pipe can be thought of as an n-dimensional array of brushes. Each dimension is indexed when the pipe is used in painting by some parameter, eg an incremental counter, a random value, pointing device pen pressure,tilt or velocity , etc.

An idea for how to implement editing of image pipes (with GIMP) is that each layer of the edited image representing the pipe is divided conceptually (and visualized by guides) into equal-sized elements, each element containing one pixmap brush. The typical cases are only one layer, with an array of brushes, or many layers, with just one brush per layer. (For instance something produced by some animator.)


First line is the name of the pipe. Second line is the number of brushes in file, followed by the contents of the gimp-image-pipe-parameters parasite (a text string), for instance:

6 ncells:6 step:20 dim:1 cols:3 rows:2 rank0:6 selection:incremental


The rest is just gbr files catted in.

Making a .gih file:

  1. Create a series of .gbr files. Note these do not need to be the same size.
  2. Create a text header like above.
  3. Combine them all together:
cat header brush1.gbr brush2.gbr brush3.gbr > foo.gih

Or use the GIH plug-in to save a brush pipe from an image.