pnminterp Man page

pamstretch General Commands Manual pamstretch


pamstretch – scale up a PNM or PAM image by interpolating between pix‐


pamstretch [-xscale=X] [-yscale=Y] [-blackedge] [-dropedge] N [infile]

You can use the minimum unique abbreviation of the options. You can
use two hyphens instead of one. You can separate an option name from
its value with white space instead of an equals sign.


pamstretch scales up pictures by integer values, either vertically,
horizontally, or both. pamstretch differs from pnmscale and pnmenlarge
in that when it inserts the additional rows and columns, instead of
making the new row or column a copy of its neighbor, pamstretch makes
the new row or column an interpolation between its neighbors. In some
images, this produces better looking output.

To scale up to non-integer pixel sizes, e.g. 2.5, try pamstretch-gen

Options let you select alternative methods of dealing with the
right/bottom edges of the picture. Since the interpolation is done
between the top-left corners of the scaled-up pixels, it’s not obvious
what to do with the right/bottom edges. The default behaviour is to
scale those up without interpolation (more precisely, the right edge is
only interpolated vertically, and the bottom edge is only interpolated
horizontally), but there are two other possibilities, selected by the
blackedge and dropedge options.


The N parameter is the scale factor. It is valid only if you don’t
specify -xscale or -yscale. In that case, pamstretch scales in both
dimensions and by the scale factor N.


This is the horizontal scale factor. If you don’t specify this,
but do specify a vertical scale factor, the horizontal scale
factor is 1.

This is the vertical scale factor. If you don’t specify this,
but do specify a horizontal scale factor, the vertical scale
factor is 1.

interpolate to black at right/bottom edges.
drop one (source) pixel at right/bottom edges. This is arguably
more logical than the default behaviour, but it means producing
output which is a slightly odd size.


Usually produces fairly ugly output for PBMs. For most PBM input you’ll
probably want to reduce the `noise’ first using something like pnmnl‐


pamstretch-gen, pnmenlarge, pnmscale, pnmnlfilt


Russell Marks (

11 November 2001 pamstretch