---
name: "ppmpat"
section: "1"
platform: "linux"
package: "netpbm"
version: "10.86.51-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/ppmpat"
---

# ppmpat(1)

make a pretty PPM image

## NAME

ppmpat - make a pretty PPM image

## SYNOPSIS

**ppmpat** \[{**-gingham2**\|**-g2**} \| {**-gingham3**\|**-g3**} \| **-madras** \| **-tartan** \| **-poles** \| **-squig** \| **-camo** \| **-anticamo** \| **-argyle1** \| **-argyle2**\] \[**-color** *colorlist*\] \[**-mesh**\] \[**-randomseed** *integer*\]

*width* *height*

You can abbreviate any option to its shortest unique prefix.

## DESCRIPTION

This program is part of **Netpbm**(1) .

**ppmpat** produces a PPM of the specified width and height, with a pattern in it.

You could, for example, use it to create wallpaper for a computer screen.

One use of this program is as an example of the Netpbm library **drawing**(1)  functions, which it uses.

Some of the patterns have large numbers of colors, so if you want a simpler pattern, use **pnmquant** on the output.

## OPTIONS

In addition to the options common to all programs based on libnetpbm (most notably **-quiet**, see \
  Common Options ⟨index.html#commonoptions⟩ ), **ppmpat** recognizes the following command line options:

### Pattern Specification

Specify the pattern type with these options.  One pattern type must be specified.

- **-gingham2** **-g2**

  A gingham check pattern.  Can be tiled.

  If you specify -color, give two colors: background and foreground, in that order.

- **-gingham3** **-g3**

  A slightly more complicated gingham.  Can be tiled.

  If you specify -color, give three colors: background and two foregrounds, in that order.

- **-madras**

  A madras plaid.  Can be tiled.

  If you specify -color, give three colors: background and two foregrounds, in that order.

- **-tartan**

  A tartan plaid.  Can be tiled.

  If you specify -color, give three colors: background and two foregrounds, in that order.

- **-poles**

  Color gradients centered on randomly-placed poles: a Voronoi diagram.

  (There are many examples of this pattern in nature.  One is the hide of a giraffe).

  If you specify -color, give two or more colors.

- **-squig**

  Squiggley tubular pattern.  Can be tiled.

  If you specify -color, give three or more colors.  The first is the background color.

- **-camo**

  Camouflage pattern.

  If you specify **-color**, give three or more colors.  The first is the background color; the others are colors for the leafy foreground shapes. The foreground shapes will probably occupy nearly the entire image, so that the background color is barely visible.

- **-anticamo**

  Anti-camouflage pattern - like -camo, but ultra-bright colors.

  If you specify **-color**, this is the same as **-camo**.

- **-argyle1**

  A diamond argyle pattern, without a cross through the diamond, with one diamond.  Can be tiled.

  If you specify -color, give two colors: background and foreground, in that order.

  This option was new in Netpbm 10.78 (March 2017).

- **-argyle2**

  A diamond argyle pattern, with a cross through the diamond, with one diamond.  Can be tiled.

  If you specify -color, give three colors: background, foreground, and stripe, in that order.

  This option was new in Netpbm 10.78 (March 2017).

### Other Options

- **-color** *colorlist*

  This specifies the colors to appear in the pattern.

  If you do not specify this option, **ppmpat** chooses colors at random.

  Different patterns take different numbers of colors.  Some can involve variable numbers of colors.  If you specify a number of colors incompatible with the pattern you specify, **ppmpat** fails, telling you how many colors to specify.

  *colorlist* is a comma-separated list of colors.

  Specify each color as described for the  argument of the **pnm\_parsecolor()** library routine ⟨libnetpbm\_image.html#colorname⟩ .

  Example: **-color red, green, rgbi:1.0/0.5/.25** .

  This option was new in Netpbm 10.78 (March 2017).

- **-mesh**

  This option affects the patterns generated by the **-gingham2**, **-gingham3**, **-madras**, and **-tartan**.  When this option is *not* specified, when two colors intersect, the program mixes them and puts the average in the rectangular intersection region. with **-mesh**, the program fills that region with a checkerboard pattern consisting of the two colors.  The resulting image looks like a true woven fabric, with separate threads for the separate colors.

  This option was new in Netpbm 10.97 (December 2021).

- **-randomseed** *integer*

  This is the seed for the random number generator that generates the pixels.

  Use this to ensure you get the same image on separate invocations.

  By default, **ppmpat** uses a seed derived from the time of day and process ID, which gives you fairly uncorrelated results in multiple invocations.

  This option was new in Netpbm 10.61 (December 2012).

## REFERENCES

Some of the patterns are from "Designer's Guide to Color 3" by Jeanne Allen.

## SEE ALSO

[**pnmtile**(1)](/pnmtile/1.md) ,  [**pnmquant**(1)](/pnmquant/1.md) ,  [**ppmmake**(1)](/ppmmake/1.md) ,  [**ppmrainbow**(1)](/ppmrainbow/1.md) ,  [**pamgradient**(1)](/pamgradient/1.md) ,  **ppm**(1)

## AUTHOR

Copyright (C) 1989 by Jef Poskanzer.

## DOCUMENT SOURCE

This manual page was generated by the Netpbm tool 'makeman' from HTML source.  The master documentation is at

-

  **http://netpbm.sourceforge.net/doc/ppmpat.html**
