Table of Contents
pgm - portable graymap file format
The portable graymap format
is a lowest common denominator grayscale file format. The definition is
as follows:
- -
- A "magic number" for identifying the file type. A pgm file's
magic number is the two characters "P2".
- -
- Whitespace (blanks, TABs, CRs,
LFs).
- -
- A width, formatted as ASCII characters in decimal.
- -
- Whitespace.
- -
- A height,
again in ASCII decimal.
- -
- Whitespace.
- -
- The maximum gray value, again in ASCII
decimal.
- -
- Whitespace.
- -
- Width * height gray values, each in ASCII decimal, between
0 and the specified maximum value, separated by whitespace, starting at
the top-left corner of the graymap, proceeding in normal English reading
order. A value of 0 means black, and the maximum value means white.
- -
- Characters
from a "#" to the next end-of-line are ignored (comments).
- -
- No line should
be longer than 70 characters.
Here is an example of a small graymap in this
format:
P2
# feep.pgm
24 7
15
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 3 3 3 3 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 15 15 15 0
0 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 15 0
0 3 3 3 0 0 0 7 7 7 0 0 0 11 11 11 0 0 0 15 15 15 15 0
0 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 0 0
0 3 0 0 0 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Programs that read this format should be as lenient as possible, accepting
anything that looks remotely like a graymap.
There is also a variant on
the format, available by setting the RAWBITS option at compile time. This
variant is different in the following ways:
- -
- The "magic number" is "P5"
instead of "P2".
- -
- The gray values are stored as plain bytes, instead of ASCII
decimal.
- -
- No whitespace is allowed in the grays section, and only a single
character of whitespace (typically a newline) is allowed after the maxval.
- -
- The files are smaller and many times faster to read and write.
Note that
this raw format can only be used for maxvals less than or equal to 255.
If you use the pgm library and try to write a file with a larger maxval,
it will automatically fall back on the slower but more general plain format.
fitstopgm(1)
, fstopgm(1)
, hipstopgm(1)
, lispmtopgm(1)
, psidtopgm(1)
,
rawtopgm(1)
, pgmbentley(1)
, pgmcrater(1)
, pgmedge(1)
, pgmenhance(1)
, pgmhist(1)
,
pgmnorm(1)
, pgmoil(1)
, pgmramp(1)
, pgmtexture(1)
, pgmtofits(1)
, pgmtofs(1)
,
pgmtolispm(1)
, pgmtopbm(1)
, pnm(5)
, pbm(5)
, ppm(5)
Copyright (C)
1989, 1991 by Jef Poskanzer.
Table of Contents