pnmtotiff
convert a portable anymap into a TIFF file
see also :
tifftopnm - pnmtotiffcmyk - pnmdepth
Synopsis
pnmtotiff
[-none|-packbits|-lzw|-g3|-g4]
[-2d] [-fill] [-predictor n]
[-msb2lsb|-lsb2msb] [-rowsperstrip
n] [-minisblack|-miniswhite]
[-truecolor] [-color] [-indexbits
1|2|4|8] [pnmfile]
Minimum
unambiguous abbreviations of options are acceptable.
add an example, a script, a trick and tips
examples
source
ppmtopgm ${1}001.ppm | pgmtopbm >
$1.pbm
pnmtotiff -g4 $1.pbm >
$1.tif
rm ${1}001.ppm
rm $1.pbm
echo 'Hit ENTER to
generate box file'
source
NUM=`expr $NUM + 1`
done
for i in `ls
*.pgm`; do
unpaper $i 'un'$i
pnmtotiff 'un'$i > 'un'$i.tiff
source
pnmconvol mask | \
pnmtotiff -truecolor -color > $2
source
ppmtopgm ${1}001.ppm | pgmtopbm >
$1.pbm
pnmtotiff -g4 $1.pbm >
$1.tif
rm ${1}001.ppm
rm $1.pbm
echo 'Hit ENTER to
generate box file'
read hello
description
Reads a PNM
image as input. Produces a TIFF file as output.
The output goes
to Standard Output, which must be a seekable file. That
means no pipes, but any regular file should work.
options
By default,
pnmtotiff creates a TIFF file with no compression.
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 compression, which is what
pnmtotiff used to do by default. However, the Tiff
library no longer does LZW compression due to concerns with
violating Unisys’s patent on LZW compression.
The
-none, -packbits, -lzw, -g3,
-g4, -flate, and -adobeflat 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
meaningful 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
creating 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 leftmost columns go into the
most significant bits of the byte in the Tiff image.
However, there is considerable confusion 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 interpretation. 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 FILLORDER 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
contains 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.
The
-indexbits option is meaningful only for a
colormapped (paletted) image. In this kind of image, the
raster contains values which are indexes into a table of
colors, with the indexes normally taking less space that the
color description in the table. pnmtotiff can generate
indexes of 1, 2, 4, or 8 bits. By default, it will use 8,
because many programs that interpret TIFF images can’t
handle any other width.
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, pnmtotiff 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 generate the
cyan-magenta-yellow-black ink color separation TIFF format.
The number of bits per sample in the TIFF output is determined 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 otherwise
twice. It needs that second pass to analyze the colors 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 temporary
file which can, and works from that. Even if it only needs one
pass.
see also
tifftopnm ,
pnmtotiffcmyk , pnmdepth ,
pnm
author
Derived by Jef
Poskanzer from ras2tiff.c, which is Copyright (c) 1990 by
Sun Microsystems, Inc. Author: Patrick J. Naughton
(naughton[:at:]wind.sun[:dot:]com).