pamtopnm - convert PAM image to PBM, PGM, or PPM
Minimum unique abbreviation of option is acceptable. You may use double hyphens instead of single hyphen to denote options. You may use white space in place of the equals sign to separate an option name from its value.
This program is part of Netpbm(1).
pamtopnm reads a PAM image as input and produces an equivalent PBM, PGM, or PPM (i.e. PNM) image, whichever is most appropriate, as output.
pamtopnm assumes the PAM image represents the information required for a PBM, PGM, or PPM image if its tuple type is "BLACKANDWHITE", "GRAYSCALE", or "RGB" and its depth and maxval are appropriate. If this is not the case, pamtopnm fails.
However, you can override the tuple type requirement with the -assume option.
pamtopnm produces a PPM image if the input PAM has depth 3 or 4; it produces PGM or PBM if the input PAM has depth 1 or 2. Whether it produced PGM or PBM depends upon the maxval: PBM for 1, PGM for anything higher. The tuple type does not play a role in determining the output type. You can use Netpbm programs such as pgmtopgm to generate a different PNM output, but remember that Netpbm program that expects PGM input will take PBM and so on.
Note that it's possible for an image which is formally color to in fact
contain only shades of gray and for an image which is formally grayscale to
contain only black and white. This program pays no attention to that; an RGB
input image produces a PPM output image even if all the pixels are gray. But
you can use ppmtopgm to convert a PPM that you know is grayscale to the
equivalent PGM, and you can use pamthreshold to convert a PGM image you
know is black and white to a black and white PAM image and then
use pamtopnm to convert that to PBM.
As with any Netpbm program that reads PAM images, pamtopnm also reads PNM images as if they were PAM. In that case, pamtopnm's functions reduces to simply copying the input to the output. But this can be useful in a program that doesn't know whether its input is PAM or PNM but needs to feed it to a program that only recognizes PNM.