This program is part of Netpbm.
pamdepth reads a Netpbm image as input, scales all the pixel values, and writes out the image with the new maxval. Scaling the colors down to a smaller maxval will result in some loss of information.
This program works on multi-image streams.
Be careful of off-by-one errors when choosing the new maxval. For instance, if you want the color values to be five bits wide, use a maxval of 31, not 32.
One important use of pamdepth is to convert a new format 2-byte-per-sample PNM file to the older 1-byte-per-sample format. Before April 2000, essentially all raw (binary) format PNM files had a maxval less than 256 and one byte per sample, and many programs may rely on that. If you specify a newmaxval less than 256, the resulting file should be readable by any program that worked with PNM files before April 2000.
pamdepth was new in Netpbm 10.32 (February 2006). It replaced pnmdepth, by Jef Poskanzer. pamdepth is backward compatible with pnmdepth and adds the ability to process arbitrary PAM images and the ability to process multi-image input streams. pnmdepth handled only PNM images and ignored all but the first in any stream.