pgm - portable graymap file format


DESCRIPTION

       The portable graymap format is a lowest common denominator
       grayscale file format.

       The format definition is as follows.

       A PGM file consists of a  sequence  of  one  or  more  PGM
       images.  There are no data, delimiters, or padding before,
       after, or between images.

       Each PGM image consists of the following:

       - A "magic number" for identifying the file type.   A  pgm
         file's magic number is the two characters "P5".

       - 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 (Maxval), again in ASCII decimal.
         Must be less than 65536.

       - Newline or other single whitespace character.

       - A raster of  Width  *  Height  gray  values,  proceeding
         through the image in normal English reading order.  Each
         gray value is a number from 0  through  Maxval,  with  0
         being  black and Maxval being white.  Each gray value is
         represented in pure binary by either 1 or 2  bytes.   If
         the  Maxval  is less than 256, it is 1 byte.  Otherwise,
         it is 2 bytes.  The most significant byte is first.

       - Characters from a "#" to the  next  end-of-line,  before
         the maxval line, are comments and are ignored.

       Note  that  you  can use pnmdepth To convert between a the
       format with 1 byte per gray value and the one with 2 bytes
       per gray value.

       There  is  actually another version of the PGM format that
       is fairly rare: "plain" PGM  format.   The  format  above,
       which generally considered the normal one, is known as the
       "raw" PGM format.  See pbm(5) for some commentary  on  how
       plain and raw formats relate to one another.


       - There is exactly one image in a file.

       - The magic number is P2 instead of P5.

       - Each pixel in the raster is represented as an ASCII dec­
         imal number (of arbitrary size).

       - Each pixel in the raster  has  white  space  before  and
         after it.  There must be at least one character of white
         space between any two pixels, but there is no maximum.

       - 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.


COMPATIBILITY

       Before April 2000, a raw format PGM file could not have  a
       maxval  greater  than  255.  Hence, it could not have more
       than one byte per sample.   Old  programs  may  depend  on
       this.

       Before  July  2000,  there could be at most one image in a
       PGM file.  As a result, most tools to  process  PGM  files
       ignore (and don't read) any data after the first image.


SEE ALSO

       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)


AUTHOR

       Copyright (C) 1989, 1991 by Jef Poskanzer.


Man(1) output converted with man2html