Explanation of PGM and PPM image file format
Seeing an image file in Linux - our viewer is GIMP or a browser. We used to
have "xv".
Common image formats are GIF and JPEG.
For reading image data, two other formats, PGM and PPM are also used.
PGM - grey scale images (one value per pixel)
PPM - color images (three values, red green blue - rgb, per pixel)
At the top of the image file is a code for the particular format:
P2 - PGM grey scale image, stored in ASCII, one value per pixel
P3 - PPM color image, stored in ASCII, 3 values rgb per pixel
P5 - PGM grey scal image stored in binary (compressed) format
P6 - PPM color image stored in binary (compressed) format
Here's the first few lines of fig1.pgm. This image file is a grey scale
image in P2 format. The second line, beginning with #, is a comment.
Comment lines begin with the symbol "#". The next two numbers specify
the width and height (#cols and #rows) of the image. The next number,
255, is the highest pixel value in the array.
Below the 255 are the pixel values in ASCII format.
P2 <-- Image format type
# CREATOR: XV Version 3.10a Rev: 12/29/94 (PNG patch 1.2) <-- Comment
97 128 <-- 97 columns (width) and 128 rows (height) of image
255 <-- Max pixel value
45 45 49 57 65 65 61 85 125 138 121 117 117 121 121 121 117
109 146 215 219 219 223 206 182 190 194 194 190 194 198 198 198 202
198 194 190 190 194 198 198 202 202 202 198 198 194 194 194 194 198
198 198 198 198 194 194 194 198 198 198 202 198 198 194 190 194 194
194 198 198 190 190 210 215 215 210 206 170 146 146 142 130 65 45
40 45 49 61 53 36 16 28 28 61 121 142 53 53 53 57 69
. . .
Here's the same file in PPM (color) format. Note the 3 values per
pixel. Since the rgb values are the same for each pixel, this would
still be a grey scale image.
P3 <-- Image format type
# CREATOR: XV Version 3.10a Rev: 12/29/94 (PNG patch 1.2) <-- Comment
291 384 <-- 291 columns (width) and 384 rows (height) of image
255 <-- Max pixel value
45 45 45 45 45 45 49 49 49 57 57 57 65 65 65 85 85
85 121 121 121 . . .
P2 and P3 modes are stored in ASCII format, readable by an editor.
These take up alot of space. The binary versions, P5 and P6, take
less space, but they must be read in binary form.