Scroll to navigation

Pampaintspill User Manual(1) General Commands Manual Pampaintspill User Manual(1)


pampaintspill - smoothly spill colors into the background


pampaintspill [--bgcolor=color] [--wrap] [--all] [--downsample=number] [--near=number] [--power=number] [filename] [-randomseed=integer]

Minimum unique abbreviations of option are acceptable. You may use double hyphens instead of single hyphen to denote options. You may use white space in place of the equals sign to separate an option name from its value.


This program is part of Netpbm(1).

pampaintspill produces a smooth color gradient from all of the non-background-colored pixels in an input image, effectively "spilling paint" onto the background. pampaintspill is similar to pamgradient but differs in the following characteristics:

  • pampaintspill accepts any number of paint
    sources (non-background-colored pixels), which can lie anywhere
    on the canvas. pamgradient accepts exactly
    four paint sources, one in each corner of the image.

  • pampaintspill requires an input image while
    pamgradient generates a new image from

  • pampaintspill can produce tileable output and
    can control how tightly the gradient colors bind to their source

Results are generally best when the input image contains just a few, crisp spots of color. Use your drawing program's pencil tool - as opposed to a paintbrush or airbrush tool - with a small nib.


In addition to the options common to all programs based on libnetpbm (most notably -quiet, see
Common Options
), pampaintspill recognizes the following command line options:

Explicitly specify the background color. color can be
specified using any of the formats accepted by the pnm_parsecolor() library routine such as red or #ff0000. If
--bgcolor is not specified, pampaintspill makes an
educated guess about the background color based on the colors in the
image's corners.

Allow gradients to wrap around image borders. That is, colors
that spill off the right side of the image reappear on the left side of
the image and likewise for left/right, top/bottom, and
bottom/top. --wrap makes images tileable, which is nice for
producing desktop backgrounds.

Recolor all pixels, not just background pixels. Normally,
non-background-colored pixels in the input image appear unmodified in
the output image. With --all, all pixels are colored
based on their distance from all of the (other) non-background-colored

Ignore all but number non-background-colored pixels.
When a large number of pixels in the input image differ in color from
the background, pampaintspill runs very slowly. The
--downsample option randomly selects a given number of colored
pixels to use as paint sources for the gradients and ignores the rest,
thereby trading off image quality for speed of execution.

Consider only the nearest number paint sources when computing
a pixel's new color. The default is to consider all paint sources.
In most cases, number should be fairly small, or its impact
will be minimal and execution time will increase unnecessarily. A
value of 1 produces a coloring that looks a lot like a Voronoi

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

Control how color intensity changes as a function of the
distance from a paint source. The default value for number is
-2.0, which means that intensity drops (because of the minus sign) with
the square (because of the 2.0) of the distance from each paint
source. -2.0 generally works well in practice, but other values can be
specified for various special effects. With very small numbers of paint
sources, -1.0 may produce subtler gradients, but these get muddier as
the number of paint sources increases. Positive numbers (e.g., 1.0 and
2.0) make the paint sources stand out in the output image by pushing the
gradients away from them.

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

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

This option was new in Netpbm 10.94 (March 2021).



pampaintspill was new in Netpbm 10.50 (March 2010).


Copyright © 2010–2021 Scott Pakin,

Table Of Contents


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