Provided by: netpbm_11.05.02-1.1build1_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 ), 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

netpbm documentation                              01 July 2020                      Pnmscalefixed User Manual(1)