PPM Image Format
taken from "man ppm"
Name
ppm -	portable pixmap	file format
Description
The portable pixmap format is	a lowest common	denominator
color	image file format.  The	definition is as follows:
      - A "magic number" for identifying the file type.  A ppm
	file's magic number	is the two characters "P3".
      
 - Whitespace (blanks,	TABs, CRs, LFs).
      
 - A width, formatted as ASCII	characters in decimal.
      
 - Whitespace.
      
 - A height, again in ASCII decimal.
      
 - Whitespace.
      
 - The	maximum	color-component	value, again in	ASCII decimal.
      
 - Whitespace.
      
 - Width * height pixels, each	three ASCII decimal values
	between 0 and the specified	maximum	value, starting	at the
	top-left corner of the pixmap, proceeding in normal
	English reading order.  The	three values for each pixel
	represent red, green, and blue, respectively; a value of 0
	means that color is	off, and the maximum value means that
	color is maxxed out.
      
 - 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	pixmap in this format:
P3
# feep.ppm
4 4
15
 0  0	 0    0	 0  0	 0  0  0   15  0 15
 0  0	 0    0	15  7	 0  0  0    0  0  0
 0  0	 0    0	 0  0	 0 15  7    0  0  0
15  0	15    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
      pixmap.
      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 "P6" instead of "P3".
      
 - The	pixel values are stored	as plain bytes,	instead	of
	ASCII decimal.
      
 - Whitespace is not allowed in the pixels area, 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	ppm library and	try to
      write	a file with a larger maxval, it	will automatically
      fall back on the slower but more general plain format.
See Also
      giftoppm(1), gouldtoppm(1), ilbmtoppm(1), imgtoppm(1),
      mtvtoppm(1), pcxtoppm(1), pgmtoppm(1), pi1toppm(1),
      picttoppm(1),	pjtoppm(1), qrttoppm(1), rawtoppm(1),
      rgb3toppm(1),	sldtoppm(1), spctoppm(1), sputoppm(1),
      tgatoppm(1), ximtoppm(1), xpmtoppm(1), yuvtoppm(1),
      ppmtoacad(1),	ppmtogif(1), ppmtoicr(1), ppmtoilbm(1),
      ppmtopcx(1), ppmtopgm(1), ppmtopi1(1), ppmtopict(1),
      ppmtopj(1), ppmtopuzz(1), ppmtorgb3(1), ppmtosixel(1),
      ppmtotga(1), ppmtouil(1), ppmtoxpm(1), ppmtoyuv(1),
      ppmdither(1),	ppmforge(1), ppmhist(1), ppmmake(1),
      ppmpat(1), ppmquant(1), ppmquantall(1), ppmrelief(1),
      pnm(5), pgm(5), pbm(5)
Author
      Copyright (C)	1989, 1991 by Jef Poskanzer.
Dan Wallach, CS Department, Princeton University
Last modified: Tue Nov 28 16:06:21 EST 1995