pgm(5)                        File Formats Manual                       pgm(5)

NAME
       pgm - portable graymap file format

DESCRIPTION
       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,  ac-
       cepting 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 the raw format stores each gray value in one byte if the max-
       val is less than 256, and in two bytes, most  significant  byte  first,
       otherwise.

SEE ALSO
       pbm(5), pbmtojbg(1), jbgtopbm(1)

AUTHOR
       Copyright (C) 1989, 1991 by Jef Poskanzer.

                               12 November 1991                         pgm(5)
