Man Pages

pnmrotate(1) - phpMan pnmrotate(1) - phpMan

Command: man perldoc info search(apropos)  


Pnmrotate User Manual(0)                              Pnmrotate User Manual(0)



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  back-
       ground  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
       between -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 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
       option.

       The program runs faster and uses less real memory with the -noantialias option.  It uses a large amount of vir-
       tual 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 require-
       ment.


OPTIONS
       All options can be abbreviated to their shortest unique prefix.  You may use two hyphens instead of one to des-
       ignate 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 ppm_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 simplisticly, 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.



netpbm documentation            30 August 2002        Pnmrotate User Manual(0)