pamoil man page

pamoil reads a Netpbm image as input and does an "oil transfer", and writes the same type of Netpbm image as output.

The oil transfer is described in "Beyond Photography" by Holzmann, chapter 4, photo 7. It's a sort of localized smearing.

The smearing works like this: First, assume a grayscale image. For each pixel in the image, pamoil looks at a square neighborhood around it. pamoil determines what is the most common pixel intensity in the neighborhood, and puts a pixel of that intensity into the output in the same position as the input pixel.

For color images, or any arbitrary multi-channel image, pamoil computes each channel (e.g. red, green, and blue) separately the same way as the grayscale case above.

At the edges of the image, where the regular neighborhood would run off the edge of the image, pamoil uses a clipped neighborhood.