Section: User Commands (1)
Updated: 12 January 1991
Reads a portable anymap as input. Rotates it by the specified angle and produces a portable anymap as output. ]] If the input file is in color, the output will be too, otherwise it will be grayscale. The angle is in degrees (floating point), measured counter-clockwise. It can be negative, but it should be between -90 and 90. Also, for rotations greater than 45 degrees you may get better results if you first use pnmflip ]] to do a 90 degree rotation and then pnmrotate less than 45 degrees back the other direction
The rotation algorithm is Alan Paeth's three-shear method. Each shear is implemented by looping over the source pixels and distributing fractions to each of the destination pixels. This has an "anti-aliasing" effect - it avoids jagged edges and similar artifacts. ]] However, it also means that the original colors or gray levels in the image are modified. If you need to keep precisely the same set of colors, you can use the -noantialias flag. This does the shearing by moving pixels without changing their values. If you want anti-aliasing and don't care about the precise colors, but still need a limited *number* of colors, you can run the result through ppmquant. ]]
Copyright (C) 1989, 1991 by Jef Poskanzer.