dwww Home | Manual pages | Find package

Pnmscalefi...User Manual(1) General Commands Manual Pnmscalefi...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 de-
       scribes 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 ex-
       periment), 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 re-
       quested.  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 distor-
       tion.   But reducing it or enlarging it by a third would cause some dis-
       tortion.  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 sin-
       gle constant in the source code.  Until there is a demonstrated need for
       that, though, the Netpbm maintainer wants to keep the safety cushion af-
       forded 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 ]8;;index.html#commonoptions\ Common Options]8;;\ ), 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) pn-
       mscale  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      Pnmscalefi...User Manual(1)

Generated by dwww version 1.16 on Fri Dec 12 04:15:37 CET 2025.