STANNIX Community


Manual: pnmscalefixed

Pnmscalefixed User Manual(1)			   General Commands Manual			Pnmscalefixed 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 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, be‐
       cause 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 modifica‐
       tion 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 ), pn‐
       mscalefixed 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)