pnmtotiff(1)pnmtotiff(1)NAMEpnmtotiff - convert a PNM image to a TIFF file
SYNOPSISpnmtotiff [-none|-packbits|-lzw|-g3|-g4] [-2d] [-fill]
[-predictor n] [-msb2lsb|-lsb2msb] [-rowsperstrip n]
[-minisblack|-miniswhite] [-truecolor] [-color] [pnmfile]
Minimum unambiguous abbreviations of options are accept
able.
DESCRIPTION
Reads a PNM image as input. Produces a TIFF file as out
put.
The output goes to Standard Output, which must be a seek
able file. That means no pipes, but any regular file
should work.
OPTIONS
By default, pnmtotiff creates a TIFF file with no compres
sion. This is your best bet most of the time. If you
want to try another compression scheme or tweak some of
the other even more obscure output options, there are a
number of flags to play with.
Actually, the best default would be to use LZW compres
sion, which is what pnmtotiff used to do by default. How
ever, the Tiff library no longer does LZW compression due
to concerns with violating Unisys's patent on LZW compres
sion.
The -none, -packbits, -lzw, -g3, -g4, -flate, and -adobe
flat options are used to override the default and set the
compression scheme used in creating the output file. The
CCITT Group 3 and Group 4 compression algorithms can only
be used with bilevel data. -lzw doesn't really work
because the Tiff library doesn't do LZW compression. It
used to, but its developers removed the function out of
concern about violating Unisys's patent. This option
remains in case you use a Tiff library that cooperates,
now or in the future. The -2d and -fill options are mean
ingful only with Group 3 compression: -2d requests
2-dimensional encoding, while -fill requests that each
encoded scanline be zero-filled to a byte boundry. The
-predictor option is only meaningful with LZW compression:
a predictor value of 2 causes each scanline of the output
image to undergo horizontal differencing before it is
encoded; a value of 1 forces each scanline to be encoded
without differencing.
By default, pnmtotiff creates a TIFF file with msb-to-lsb
fill order. The -msb2lsb and -lsb2msb options are used to
override the default and set the fill order used in creat
ing the file.
The fill order is the order in which pixels are packed
into a byte in the Tiff raster, in the case that there are
multiple pixels per byte. msb-to-lsb means that the left
most columns go into the most significant bits of the byte
in the Tiff image. However, there is considerable confu
sion about the meaning of fill order. Some believe it
means whether 16 bit sample values in the Tiff image are
little-endian or big-endian. This is totally erroneous
(The endianness of integers in a Tiff image is designated
by the image's magic number). However, ImageMagick and
older Netpbm both have been known to implement that inter
pretation. 2001.09.06.
If the image does not have sub-byte pixels, these options
have no effect other than to set the value of the FIL
LORDER tag in the Tiff image (which may be useful for
those programs that misinterpret the tag with reference to
16 bit samples).
The -rowsperstrip option can be used to set the number of
rows (scanlines) in each strip of data in the output file.
By default, the output file has the number of rows per
strip set to a value that will ensure each strip is no
more than 8 kilobytes long.
The -minisblack and -miniswhite option force the output
image to have a "minimum is black" or "minimum is white"
photometric, respectively. If you don't specify either,
pnmtotiff uses minimum is black except when using Group 3
or Group 4 compression, in which case pnmtotiff follows
CCITT fax standards and uses "minimum is white." This
usually results in better compression and is generally
preferred for bilevel coding.
Before February 2001, pnmtotiff always produced "minimum
is black," due to a bug. In either case, pnmtotiff sets
the photometric interpretation tag in the TIFF output
according to which photometric is actually used.
-truecolor tells pnmtotiff to produce the 24-bit RGB form
of TIFF output if it is producing a color TIFF image.
Without this option, pnmtotiff produces a colormapped
(paletted) 8-bit TIFF image unless there are more than 256
colors (and in the latter case, issues a warning).
The -truecolor option can prevent pnmtotiff from making
two passes through the input file, thus improving speed
and memory usage. See the section MULTIPLE PASSES.
If pnmtotiff produces a grayscale TIFF image, this option
has no effect.
-color tells pnmtotiff to produce a color, as opposed to
grayscale, TIFF image if the input is PPM, even if it con
tains only shades of gray. Without this option, pnmtotiff
produces a grayscale TIFF image if the input is PPM and
contains only shades of gray, and at most 256 shades.
Otherwise, it produces a color TIFF output. For PBM and
PGM input, pnmtotiff always produces grayscale TIFF output
and this option has no effect.
The -color option can prevent pnmtotiff from making two
passes through the input file, thus improving speed and
memory usage. See the section MULTIPLE PASSES.
NOTES
There are myriad variations of the TIFF format, and this
program generates only a few of them. pnmtotiff creates a
grayscale TIFF file if its input is a PBM (monochrome) or
PGM (grayscale) file. pnmtotiff also creates a grayscale
file if it input is PPM (color), but there is only one
color in the image. If the input is a PPM (color) file
and there are 256 colors or fewer, but more than 1, pnmto
tiff generates a color palette TIFF file. If there are
more colors than that, pnmtotiff generates an RGB (not
RGBA) single plane TIFF file. Use pnmtotiffcmyk to gener
ate the cyan-magenta-yellow-black ink color separation
TIFF format.
The number of bits per sample in the TIFF output is deter
mined by the maxval of the PNM input. If the maxval is
less than 256, the bits per sample in the output is the
smallest number that can encode the maxval. If the maxval
is greater than or equal to 256, there are 16 bits per
sample in the output.
Multiple Passes
pnmtotiff reads the input image once if it can, and other
wise twice. It needs that second pass to analyze the col
ors in the image and generate a color map (pallette) and
determine if the image is grayscale. So the second pass
only happens when the input is PPM. And you can avoid it
then by specifying both the -truecolor and -color options.
If the input image is small enough to fit in your system's
file cache, the second pass is very fast. If not, it
requires reading from disk twice, which can be slow.
When the input is from a file that cannot be rewound and
reread, pnmtotiff reads the entire input image into a tem
porary file which can, and works from that. Even if it
only needs one pass.
SEE ALSOtifftopnm(1), pnmtotiffcmyk(1), pnmdepth(1), pnm(5)AUTHOR
Derived by Jef Poskanzer from ras2tiff.c, which is Copy
right (c) 1990 by Sun Microsystems, Inc. Author: Patrick
J. Naughton (naughton@wind.sun.com).
24 January 2001 pnmtotiff(1)