Pnmshear User Manual(1) General Commands Manual Pnmshear User Manual(1)
NAME
pnmshear - shear a PNM image by a specified angle
SYNOPSIS
pnmshear
[-noantialias] [-background=color] angle [pnmfile]
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 ei-
ther white space or equals signs between an option name and its value.
DESCRIPTION
This program is part of Netpbm(1).
pnmshear reads a PNM image as input and shears it by the specified angle
and produce a PNM image as output. If the input file is in color, the
output will be too, otherwise it will be grayscale. The angle is in de-
grees (floating point), and measures this:
+-------+ +-------+
| | |\ \
| OLD | | \ NEW \
| | |an\ \
+-------+ |gle+-------+
If the angle is negative, it shears the other way:
+-------+ |-an+-------+
| | |gl/ /
| OLD | |e/ NEW /
| | |/ /
+-------+ +-------+
The angle should not get too close to 90 or -90, or the resulting image
will be unreasonably wide. In fact, if it gets too close, the width
will be so large that pnmshear cannot do computations in the word sizes
it uses, and the program detects this and fails.
pnmshear does the shearing by looping over the source pixels and dis-
tributing 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 in the image are modi-
fied and there are typically more of them than you started with. If you
need to keep precisely the same set of colors, see the -noantialias op-
tion. If the expanded palette is a problem, you can run the result
through pnmquant.
OPTIONS
In addition to the options common to all programs based on libnetpbm
(most notably -quiet, see ]8;;index.html#commonoptions\ Common Options]8;;\ ), pnmshear recognizes the
following command line options:
-background=color
This determines the color of the background on which the sheared
image sits.
Specify the color (color) as described for the ]8;;libnetpbm_image.html#colorname\argument of the
pnm_parsecolor() library routine]8;;\ .
By default, if you don't specify this option, pnmshear selects
what appears to it to be the background color of the original im-
age. 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.37 (December 2006). Before
that, pnmshear always behaved as is the default now.
-noantialias
This option forces pnmshear 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 in-
stead 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.
SEE ALSO
pnmrotate(1), pamflip(1), pamhomography(1), pnmquant(1), pamrestack(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/pnmshear.html
netpbm documentation 22 March 2020 Pnmshear User Manual(1)
Generated by dwww version 1.16 on Tue Dec 16 04:47:20 CET 2025.