dwww Home | Manual pages | Find package

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) in-
       put image within it, rotated with respect to its bottom edge.  The con-
       taining 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-clock-
       wise.  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 frac-
       tions 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  mem-
       ory,  using 12 bytes per pixel for each.  But with -noantialias, it ac-
       cesses 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  tak-
              ing  an  average of the colors of the two top corners of the im-
              age.

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

       -noantialias
              This  option  forces  pnmrotate to simply move pixels around in-
              stead 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)

Generated by dwww version 1.15 on Sat Jun 29 01:55:21 CEST 2024.