# man > pnmscalefixed(1)

> **TLDR:** Scale a PNM file quickly with possibly reduced quality.
>
- Scale an image such that the result has the specified dimensions:
  `pnmscalefixed {{-w|-width}} {{width}} {{-h|-height}} {{height}} {{path/to/input.pnm}} > {{path/to/output.pnm}}`
- Scale an image such that the result has the specified width, keeping the aspect ratio:
  `pnmscalefixed {{-w|-width}} {{width}} {{path/to/input.pnm}} > {{path/to/output.pnm}}`
- Scale an image such that its width and height is changed by the specified factors:
  `pnmscalefixed {{-xsc|-xscale}} {{x_factor}} {{-ysc|-yscale}} {{y_factor}} {{path/to/input.pnm}} > {{path/to/output.pnm}}`

*Source: tldr-pages*

---

[pnmscalefixed(1)](https://www.chedong.com/phpMan.php/man/pnmscalefixed/1/markdown)                       General Commands Manual                      [pnmscalefixed(1)](https://www.chedong.com/phpMan.php/man/pnmscalefixed/1/markdown)



## NAME
       pnmscalefixed - scale a portable anymap quickly, but less accurate


## DESCRIPTION
       **pnmscalefixed** is the same thing as **pnmscale** except that it uses fixed point arithmetic inter‐
       nally 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 difference.

       **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  exam‐
       ple  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  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)](https://www.chedong.com/phpMan.php/man/pnmscalefixed/1/markdown)
