pnmscale

NAME SYNOPSIS DESCRIPTION SEE ALSO AUTHOR

pnmscale - scale a PNM image

**pnmscale** *scale_factor* __[''pnmfile''__?**
pnmscale -reduce** *reduction_factor*
__[''pnmfile''__?**
pnmscale** __[{__-xsize=__''cols''__?
__[{__-ysize=__''rows'' | __-height=__''rows''__? __[''pnmfile''__?**
pnmscale -xysize** *cols rows*
__[''pnmfile''__?**
pnmscale -pixels** *n* __[''pnmfile''__?

Miscellaneous options:__

- verbose__

Minimum unique abbreviation of option is acceptable.

Reads a PBM, PGM, or PPM image as input, scales it by the specified factor or factors and produces a PGM or PPM image as output. If the input file is in color (PPM), the output will be too, otherwise it will be grayscale (PGM). This is true even if the input is a black and white bitmap (PBM), because the process of scaling can turn a combination of black and white pixels into a gray pixel.

If you want PBM output, use **pgmtopbm** to convert
**pnmscale**'s output to PBM. Also consider
**pbmreduce**.

You can both enlarge (scale factor

When you specify an absolute size or scale factor for both
dimensions, **pnmscale** scales each dimension
independently without consideration of the aspect
ratio.

If you specify one dimension as a pixel size and don't
specify the other dimension, **pnmscale** scales the
unspecified dimension to preserve the aspect
ratio.

If you specify one dimension as a scale factor and don't
specify the other dimension, **pnmscale** leaves the
unspecified dimension unchanged from the input.

If you specify the *scale_factor* parameter instead of
dimension options, that is the scale factor for both
dimensions. It is equivalent to
**-xscale=***scale_factor*
**-yscale=***scale_factor* .

Specifying the **-reduce** *reduction_factor* option
is equivalent to specifying the *scale_factor*
parameter, where *scale_factor* is the reciprocal of
*reduction_factor*.

**-xysize** specifies a bounding box. **pnmscale**
scales the input image to the largest size that fits within
the box, while preserving its aspect ratio.

**-pixels** specifies a maximum total number of output
pixels. **pnmscale** scales the image down to that number
of pixels. If the input image is already no more than that
many pixels, **pnmscale** just copies it as output;
**pnmscale** does not scale up with
**-pixels**.

If you enlarge by a factor of 3 or more, you should probably
add a *pnmsmooth* step; otherwise, you can see the
original pixels in the resulting image.

**PRECISION**

**pnmscale** uses floating point arithmetic internally.
There is a speed cost associated with this. For some images,
you can get the acceptable results (in fact, sometimes
identical results) faster with **pnmscalefixed**, which
uses fixed point arithmetic. **pnmscalefixed** may,
however, distort your image a little. See
**pnmscalefixed**'s man page for a complete discussion of
the difference.

pnmscalefixed(1), pnminterp(1),
pbmreduce(1), pnmenlarge(1),
pnmsmooth(1), pnmcut(1),
____pnm(5)__?__

Copyright (C) 1989, 1991 by Jef Poskanzer.

15 pages link to pnmscale(1):

This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.