rawtopgm
convert raw grayscale bytes into a portable graymap
see also :
rawtoppm - pnmflip
Synopsis
rawtopgm
[-bpp [1|2]] [-littleendian]
[-maxval N] [-headerskip N]
[-rowskip N] [-tb|-topbottom]
[width height] [imagefile]
add an example, a script, a trick and tips
examples
no example yet ...
... Feel free to add your own example above to help other Linux-lovers !
description
Reads raw
grayscale values as input. Produces a PGM file as output.
The input file is just a sequence of pure binary numbers,
either one or two bytes each, either bigendian or
littleendian, representing gray values. They may be arranged
either top to bottom, left to right or bottom to top, left
to right. There may be arbitrary header information at the
start of the file (to which rawtopgm pays no
attention at all other than the header’s size).
Arguments to
rawtopgm tell how to interpret the pixels (a function
that is served by a header in a regular graphics
format).
The
width and height parameters tell the
dimensions of the image. If you omit these parameters,
rawtopgm assumes it is a quadratic image and bases
the dimensions on the size of the input stream. If this size
is not a perfect square, rawtopgm fails.
When you
don’t specify width and height,
rawtopgm reads the entire input stream into storage
at once, which may take a lot of storage. Otherwise,
rawtopgm ordinarily stores only one row at a
time.
If you
don’t specify imagefile, or specify -,
the input is from Standard Input.
The PGM output
is to Standard Output.
options
-maxval
N
N is the maxval for the
gray values in the input, and is also the maxval of the PGM
output image. The default is the maximum value that can be
represented in the number of bytes used for each sample
(i.e. 255 or 65535).
-bpp
[1|2]
tells the number of bytes that
represent each sample in the input. If the value is
2, The most significant byte is first in the
stream.
The default is
1 byte per sample.
-littleendian
says that the bytes of each
input sample are ordered with the least significant byte
first. Without this option, rawtopgm assumes MSB
first. This obviously has no effect when there is only one
byte per sample.
-headerskip N
rawtopgm skips over
N bytes at the beginning of the stream and reads the
image immediately after. The default is 0.
This is useful
when the input is actually some graphics format that has a
descriptive header followed by an ordinary raster, and you
don’t have a program that understands the header or
you want to ignore the header.
-rowskip N
If there is padding at the ends
of the rows, you can skip it with this option. Note that
rowskip need not be an integer. Amazingly, I once had an
image with 0.376 bytes of padding per row. This turned out
to be due to a file-transfer problem, but I was still able
to read the image.
Skipping a
fractional byte per row means skipping one byte per multiple
rows.
-bt -bottomfirst
By default, rawtopgm
assumes the pixels in the input go top to bottom, left to
right. If you specify -bt or -bottomfirst,
rawtopgm assumes the pixels go bottom to top, left to
right. The Molecular Dynamics and Leica confocal format, for
example, use the latter arrangement.
If you
don’t specify -bt when you should or vice
versa, the resulting image is upside down, which you can
correct with pnmflip .
This option
causes rawtopgm to read the entire input stream into
storage at once, which may take a lot of storage. Ordinarly,
rawtopgm stores only one row at a time.
For backwards
compatibility, rawtopgm also accepts -tb and
-topbottom to mean exactly the same thing. The
reasons these are named backwards is that the original
author thought of it as specifying that the wrong results of
assuming the data is top to bottom should be corrected by
flipping the result top for bottom. Today, we think of it as
simply specifying the format of the input data so that there
are no wrong results.
see also
pgm,
rawtoppm , pnmflip
authors
Copyright (C)
1989 by Jef Poskanzer.
Modified June 1993 by Oliver Trepte,
oliver[:at:]fysik4.kth[:dot:]se