Pampaintspill User Manual

# pampaintspill

Updated: 02 November 2021
Table Of Contents

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

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), 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 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
- ppmmake,
- ppmrainbow,
- pgmramp,
- ppmpat,
- pam

## HISTORY

pampaintspill was new in Netpbm 10.50 (March 2010).

## COPYRIGHT

Copyright © 2010–2021 Scott Pakin, scott+pbm@pakin.org.

## Table Of Contents

- SYNOPSIS
- DESCRIPTION
- OPTIONS
- SEE ALSO
- HISTORY
- COPYRIGHT