STANNIX Community


Manual: pnmrotate

Pnmrotate User Manual(1)			   General Commands Manual			    Pnmrotate User Manual(1)

NAME
       pnmrotate - rotate a PNM image by some angle

SYNOPSIS
       pnmrotate [-noantialias] [-background=color] angle [pnmfile]

DESCRIPTION
       This program is part of Netpbm(1).

       pnmrotate  reads	 a PNM image as input.	It rotates it by the specified angle and produces the same kind of PNM image
       as output.

       The input is the file named by pnmfile or Standard Input if you don't specify pnmfile.  The output goes	to  Standard
       Output.

       The resulting image is a rectangle that contains the (rectangular) input image within it, rotated with respect to its
       bottom  edge.   The containing rectangle is as small as possible to contain the rotated image.  The background of the
       containing image is a single color that pnmrotate determines to be the background color of  the	original  image,  or
       that you specify explicitly.

       angle  is  in decimal degrees (floating point), measured counter-clockwise.  It can be negative, but it should be be‐
       tween -90 and 90.

       You should use pamflip instead for rotations that are a multiple of a quarter turn.  It is faster and more accurate.

       For rotations greater than 45 degrees you may get better results if you first use pamflip 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 pix‐
       els  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 option.

       The  program  runs  faster and uses less real memory with the -noantialias option.  It uses a large amount of virtual
       memory either way, as it keeps a copy of the input image and a copy of the output image in memory, using 12 bytes per
       pixel for each.	But with -noantialias, it accesses this memory sequentially in half a dozen passes, with only a	 few
       pages of memory at a time required in real memory.

       In  contrast,  without  -noantialias, the program's real memory working set size is one page per input image row plus
       one page per output image row.  Before Netpbm 10.16 (June 2003), -noantialias had the same memory requirement.

OPTIONS
       In addition to the options common to all programs based on libnetpbm (most notably -quiet, see  Common Options ), pn‐
       mrotate recognizes the following command line options:

       All options can be abbreviated to their shortest unique prefix.	You may use two hyphens instead of one to  designate
       an option.  You may use either white space or equals signs between an option name and its value.

       -background=color
	      This determines the color of the background on which the rotated image sits.

	      Specify the color (color) as described for the argument of the pnm_parsecolor() library routine .

	      By  default, if you don't specify this option, pnmrotate selects what appears to it to be the background color
	      of the original image.  It determines this color rather simplistically, by taking an average of the colors  of
	      the two top corners of the image.

	      This option was new in Netpbm 10.15.  Before that, pnmrotate always behaved as is the default now.

       -noantialias
	      This  option forces pnmrotate to simply move pixels around instead of synthesizing output pixels from multiple
	      input pixels.  The latter could cause the output to contain colors that are not in the input, which may not be
	      desirable.  It also probably makes the output contain a large number of colors.  If you need a small number of
	      colors, but it doesn't matter if they are the exact ones from the input, consider using pnmquant on the output
	      instead of using -noantialias.

	      Note that to ensure the output does not contain colors that are not in the input, you also must  consider	 the
	      background color.	 See the -background option.

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

SEE ALSO
       pnmshear(1), pamflip(1), pnmquant(1), pnm(1)

AUTHOR
       Copyright (C) 1989, 1991 by Jef Poskanzer.

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/pnmrotate.html

netpbm documentation				       30 August 2002				    Pnmrotate User Manual(1)