This program is part of Netpbm.
ppmdist reads a PPM image as input and performs a simplistic grayscale assignment intended for use with grayscale or bitmap printers.
Often conversion from ppm to pgm will yield an image with contrast too low for good printer output. The program maximizes contrast between the gray levels output.
A ppm input of n colors is read, and a pgm of n gray levels is written. The gray levels take on the values 0..n-1, while maxval takes on n-1.
The mapping from color to stepped grayscale can be performed in order of input pixel intensity, or input pixel frequency (number of repetitions).
This program is helpful only for images with a very small number of colors.