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.