Updated: 1 May 2006
Table Of Contents


ppmcolormask - produce mask of areas of a certain color in a PPM file


ppmcolormask -color=color_list [ppmfile]

ppmcolormask color [ppmfile]


    ppmcolormask -color red testimg.ppm >redmask.pbm
    pamcomp background.ppm testimg.ppm -alpha=redmask.pbm >test.ppm

    ppmcolormask -color=red,pink,salmon testimg.ppm >reddishmask.pbm

    ppmcolormask -color=bk:red,bk:orange,bk:yellow testimg.ppm >firemask.pbm


This program is part of Netpbm.

ppmcolormask reads a PPM file as input and produces a PBM (bitmap) file as output. The output file is the same dimensions as the input file and is black in all places where the input file is a color indicated by the -color option, and white everywhere else.

The output of ppmcolormask is useful as a transparency mask input to pamcomp. Note that you don't need ppmcolormask and pamcomp if you are ultimately converting to PNG with pnmtopng because the -transparent option on pnmtopng does the same thing.

ppmfile is the input file. If you don't specify ppmfile, the input is from Standard Input.

The output goes to Standard Output.

In the obsolete alternative syntax, specifying the color names a single exact color to be masked.

ppmchange does a similar thing: it modifies an image by changing colors you specify to other colors you specify. The two programs give you somewhat different means of specifying colors in the input image.

To make a mask of an image's background, without having to tell it what color it is, use pambackground.


This mandatory option specifies the colors that are to be masked (where the image is one of these colors, the output mask will be black).


color_list is a list of colors separated by commas. Each color is either an exact color name as described for the argument of the ppm_parsecolor() library routine or one of the Berlin-Kay color names. In the latter case, all colors that are better described by that Berlin-Kay color name than any other are in the mask set.

The algorithm ppmcolormask uses to determine to which colors a Berlin-Kay color name applies is based on a Sugeno-type fuzzy inference system developed by Kenan Kalajdzic in 2006. The fuzzy model consists of partially linear membership functions defined in the HSV color space. Although more complex algorithms for fuzzy color matching exist, this algorithm is intentionally simplified to achieve a satisfactory speed using relatively compact code.

This option was new in Netpbm 10.34 (June 2006). Before that, you must use the color argument and cannot specify a Berlin-Kay color.


pambackground, ppmchange, pgmtoppm, pamcomp, pbmmask, pnmtopng, ppm

Table Of Contents