Your company here — click to reach over 10,000 unique daily visitors

ppmtopgm - Man Page

convert a PPM image to a PGM image

Examples (TL;DR)





This program is part of Netpbm(1).

ppmtopgm reads a PPM as input and produces a PGM as output. The output is a "black and white" rendering of the original image, as in a black and white photograph.  The quantization formula ppmtopgm uses is y = .299 r + .587 g + .114 b.

The dimensions and maxval of the output are the same as the input. Note that with only one color plane, there are far fewer brightnesses that can be represented with the same maxval than with three color planes, so you may want to increase the maxval of the input with pamdepth before giving it to ppmtopgm to avoid loss of information.  For example, with a maxval of 1, there are 8 brightnesses that are possible in a PPM (though some of them are barely distinguishable), but only 2 brightness levels possible in a PGM.

Note that although there is a pgmtoppm program, it is not necessary for simple conversions from pgm to ppm , because any ppm program can read pgm (and pbm ) files automatically.  pgmtoppm is for colorizing a pgm file.  Also, see ppmtorgb3 for a different way of converting color to gray.  And ppmdist generates a grayscale image from a color image, but in a way that makes it easy to differentiate the original colors, not necessarily a way that looks like a black and white photograph.


There are no command line options defined specifically for ppmtopgm, but it recognizes the options common to all programs based on libnetpbm (See Common Options .)


Cold-hearted orb that rules the night
Removes the colors from our sight
Red is gray, and yellow white
But we decide which is right
And which is a quantization error.

See Also

pgmtoppm(1), ppmtorgb3(1), rgb3toppm(1), ppmdist(1), ppm(1), pgm(1)


Copyright (C) 1989 by Jef Poskanzer.

Document Source

This manual page was generated by the Netpbm tool 'makeman' from HTML source.  The master documentation is at


Referenced By

jpegtopnm(1), pamrecolor(1), pamthreshold(1), pamtopnm(1), pgmtoppm(1), pnmtopclxl(1), pnmtops(1), ppmdist(1), ppmrough(1), ppmtorgb3(1), rgb3toppm(1).

25 June 2017 netpbm documentation