dwww Home | Manual pages | Find package

Pnmscalefixed User Manual(1)General Commands ManuaPnmscalefixed User Manual(1)

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 arith-
       metic 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,  pam-
       scale 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 re-
       quires.  Consequently, the rest of the image is smaller than the  scal-
       ing  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  dis-
       tortion.   So,  for example doubling or halving an image causes no dis-
       tortion.  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 arith-
       metic  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 cush-
       ion 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),  pbmp-
       scale(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)

Generated by dwww version 1.15 on Sat Jun 29 02:11:07 CEST 2024.