OnWorks favicon

pnmscalefixed - Online in the Cloud

Run pnmscalefixed in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command pnmscalefixed that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



pnmscalefixed - scale a portable anymap quickly, but less accurate


pnmscalefixed is the same thing as pnmscale except that it uses fixed point arithmetic
internally instead of floating point, which makes it run faster. In turn, it is less
accurate and may distort the image.

Use the pnmscale man page with pnmscalefixed. This man page only describes the

pnmscalefixed uses fixed point 12 bit arithmetic. By contrast, pnmscale 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

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 pnmscale 's -nomix option.

18 November 2000 pnmscalefixed(1)

Use pnmscalefixed online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

Linux commands