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

# pampaintspill(1)

smoothly spill colors into the background

## NAME

pampaintspill - smoothly spill colors into the background

## SYNOPSIS

**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.

## DESCRIPTION

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\
         scratch.

- •

  **pampaintspill** can produce tileable output and\
         can control how tightly the gradient colors bind to their source\
         pixels.

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.

## OPTIONS

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

- **--bgcolor**=*color*

  Explicitly specify the background color. *color* can be\
         specified using any of the formats accepted by the  `pnm_parsecolor()` library       routine ⟨libnetpbm\_image.html#colorname⟩  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.

- **--wrap**

  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.

- **--all**

  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\
         pixels.

- **--downsample**=*number*

  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.

- **--near**=*number*

  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\
         diagram.

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

- **--power**=*number*

  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.

- **-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.

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

## SEE ALSO

- •

  [**pamgradient**(1)](/pamgradient/1.md)

- •

  [**ppmmake**(1)](/ppmmake/1.md) ,

- •

  [**ppmrainbow**(1)](/ppmrainbow/1.md) ,

- •

  [**pgmramp**(1)](/pgmramp/1.md) ,

- •

  [**ppmpat**(1)](/ppmpat/1.md) ,

- •

  **pam**(1)

## HISTORY

**pampaintspill** was new in Netpbm 10.50 (March 2010).

## COPYRIGHT

Copyright © 2010&ndash;2021 Scott Pakin, *scott+pbm@pakin.org.*

## Table Of Contents

- •

  *SYNOPSIS* ⟨#synopsis⟩

- •

  *DESCRIPTION* ⟨#description⟩

- •

  *OPTIONS* ⟨#options⟩

- •

  *SEE ALSO* ⟨#seealso⟩

- •

  *HISTORY* ⟨#history⟩

- •

  *COPYRIGHT* ⟨#copyright⟩

## 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/pampaintspill.html**
