plucky (1) pnmrotate.1.gz

Provided by: netpbm_11.09.02-2_amd64 bug

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 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 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 ⟨index.html#commonoptions⟩ ), pnmrotate 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
              ⟨libnetpbm_image.html#colorname⟩ .

              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