Provided by: netpbm_10.0-15.4_amd64 bug

NAME

       pnmscale - scale a portable anymap

SYNOPSIS

       pnmscale scale_factor [pnmfile]
       pnmscale -reduce reduction_factor [pnmfile]
       pnmscale  [{-xsize=cols  | -width=cols | -xscale=factor}] [{-ysize=rows | -height=rows | -yscale=factor}]
       [pnmfile]
       pnmscale -xysize cols rows [pnmfile]
       pnmscale -pixels n [pnmfile]

       Miscellaneous options:
       -verbose -nomix

       Minimum unique abbreviation of option is acceptable.  You may use double hypens 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

       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 > 1) and reduce (scale factor < 1).

       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.

       When the scale factor is not an integer (including all cases of scaling down), there are two ways  to  do
       the scaling.  Which one pnmscale does is controlled by its -nomix option.

       By  default,  pnmscale  mixes  the  colors  of  adjacent  pixels  to  produce  output pixels that contain
       information from multiple input pixels.  This makes the image look more like it would if it had  infinite
       resolution.  Note that it means the output may contain colors that aren't in the input at all.

       But  if  you  specify  -nomix,  pnmscale never mixes pixels.  Each output pixel is derived from one input
       pixel.  If you're scaling up, pixels get duplicated.  If you're scaling down, pixels get  omitted.   Note
       that  this  means  the  image is rather distorted.  If you scale up by 1.5 horizontally, for example, the
       even numbered input pixels are doubled in the output and the odd numbered ones are copied singly.

       When the scale factor is an integer (which means you're scaling up), the -nomix option has no  effect  --
       output  pixels  are  always  just  N  copies  of  the input pixels.  In this case, though, consider using
       pamstretch instead of pnmscale to get the added pixels interpolated instead of just  copied  and  thereby
       get a smoother enlargement.

       pnmscale  with  -nomix  is faster than without, but pnmenlarge is faster still.  pnmenlarge works only on
       integer enlargements.

       A useful application of pnmscale is to blur an image.  Scale it down (without -nomix )  to  discard  some
       information, then scale it back up using pamstretch.

       Or scale it back up with pnmscale and create a "pixelized" image, which is sort of a computer-age version
       of blurring.

   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.

SEE ALSO

       pnmscalefixed(1), pamstretch(1), pbmreduce(1), pnmenlarge(1), pnmsmooth(1), pnmcut(1), pnm(5)

AUTHOR

       Copyright (C) 1989, 1991 by Jef Poskanzer.

                                                04 November 2000                                     pnmscale(1)