Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Pnmrotate User Manual(0)			      Pnmrotate	User Manual(0)

       pnmrotate - rotate a PNM	image by some angle

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

       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

       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

	      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-

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

	      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.

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

       pnmshear(1), pamflip(1),	pnmquant(1), pnm(5)

       Copyright (C) 1989, 1991	by Jef Poskanzer.

       This  manual  page was generated	by the Netpbm tool 'makeman' from HTML
       source.	The master documentation is at

netpbm documentation		30 August 2002	      Pnmrotate	User Manual(0)


Want to link to this manual page? Use this URL:

home | help