Provided by: netpbm_10.97.00-2_amd64 bug

NAME

       pnmscalefixed - scale a PNM file quickly

DESCRIPTION

       This program is part of Netpbm(1).

       pnmscalefixed  is  like  pamscale  except  that  it uses fixed point arithmetic internally
       instead of floating point, which may make it run faster.  In turn, it is less accurate and
       may distort the image.  It also lacks many of the features of pamscale.

       Use  the  pamscale  user  manual  with  pnmscalefixed.   This  document only describes the
       difference.  Avoid any feature mentioned in the pamscale manual  as  not  existing  before
       Netpbm 9.9.

       pnmscalefixed  uses  fixed  point  12 bit arithmetic.  By contrast, pamscale uses floating
       point arithmetic which on  most  machines  is  probably  24  bit  precision.   This  makes
       pnmscalefixed  run  faster  (30%  faster in one experiment), but the imprecision can cause
       distortions at the right and bottom edges.

       The distortion takes the following form: One pixel from the edge of the input is  rendered
       larger  in  the  output  than  the scaling factor requires.  Consequently, the rest of the
       image is smaller than the scaling factor requires, because the overall dimensions  of  the
       image are always as requested.  This distortion will usually be very hard to see.

       pnmscalefixed with the -verbose option tells you how much distortion there is.

       The  amount of distortion depends on the size of the input image and how close the scaling
       factor is to an integral 1/4096th.

       If the scaling factor is an exact multiple of 1/4096, there is  no  distortion.   So,  for
       example  doubling  or halving an image causes no distortion.  But reducing it or enlarging
       it by a third would cause some distortion.  To consider an extreme case, scaling a 100,000
       row  image down to 50,022 rows would create an output image with all of the input squeezed
       into the top 50,000 rows, and the last row of the input copied into the bottom 22 rows  of
       output.

       pnmscalefixed could probably be modified to use 16 bit or better arithmetic without losing
       anything.  The modification would consist of a single constant in the source code.   Until
       there  is  a  demonstrated  need for that, though, the Netpbm maintainer wants to keep the
       safety cushion afforded by the original 12 bit precision.

       pnmscalefixed does not have pamscale's -nomix option.

OPTIONS

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

       -xsize

       -width

       -ysize

       -height

       -xscale

       -yscale

       -pixels

       -xysize

       -reduce

              These options determine the scale factors.  See the  pamscale(1)  user  manual  for
              details.

       -verbose

              Report details of the transformation.

HISTORY

       pnmscalefixed  was  originally  pnmscale.  In  Netpbm  9.9  (November  2000)  pnmscale was
       rewritten to use floating point arithmetic; the former fixed point arithmetic version  was
       renamed pnmscalefixed.

SEE ALSO

       pamscale(1),  pamstretch(1), pamstretch-gen(1), pbmreduce(1), pbmpscale(1), pamenlarge(1),
       pnmscale(1), pnm(1), pam(1)

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/pnmscalefixed.html