PNMROTATE



		

NAME

      pnmrotate - rotate a portable anymap by some angle

SYNOPSIS

      pnmrotate [-noantialias] angle [pnmfile]

DESCRIPTION

      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.
      All flags can be abbreviated to their shortest unique prefix.

DEMONSTRATION

      Let a.pnm be a portable anymap.
      The following command will rotate it by an angle of 23 degrees.
	pnmmerge pnmrotate 23 a.pnm > arotate.pnm

BEFORE

AFTER


		

REFERENCES

      "A Fast Algorithm for General Raster Rotation" by Alan Paeth, Graphics
      Interface '86, pp. 77-81.

SEE ALSO

      pnmshear(1), pnmflip(1), pnm(5), ppmquant(1)

AUTHOR

      Copyright (C) 1989, 1991 by Jef Poskanzer.