This program is part of Netpbm(1).
pambrighten increases or decreases the Saturation and Value (from the HSV color space) of each pixel of a
Netpbm image. You specify the percentage change for each of those parameters.
You can also remap the colors of the pixels so their Values cover the full range of possible Values.
The input image is from the file named netpbmfile, or Standard Input if netpbmfile is not specified.
The output format is the same as the input format and any extra channels, such as transparency, are
passed through.
Hue-Saturation-Value, or HSV, is one way to represent a color, like the more well-known RGB. Hue,
Saturation, and Value are numbers in the range from 0 to 1. We always capitalize them in this document
when we mean the number from the HSV color space, especially since "value" as a conventional English word
has a much more abstract meaning.
Value is a measure of how bright the color is, relative to some specified maximum (the Netpbm formats are
also defined in terms of a specified maximum brightness -- For the purposes of this program, they are the
same). In particular, it is the brightness of the brightest primary color component of the color divided
by the maximum brightness possible for a component. Zero Value means black. White has full Value.
Hue is an indication of the secondary color with the same brightness that most closely approximates the
color. A secondary color is made of a combination of at most two of the primary colors.
Saturation is a measure of how close the color is to the color indicated by the Hue and Value. A lower
number means more light of the third primary color must be added to get the exact color. Full Saturation
means the color is a secondary color. Zero Saturation means the color is gray (or black or white).
Decreasing the saturation of a color tends to make it washed out.
If it is impossible to increase the Value of a pixel by the amount you specify (e.g. the Value is .5 and
you specify +200%), pambrighten increases it to full Value instead.
If it is impossible to increase the Saturation of a pixel by the amount you specify (e.g. it is already
half saturated and you specify +200%), pambrighten increases it to full Saturation instead.
For a simpler kind of brightening, you can use pamfunc-multiplier simply to increase the brightness of
each pixel by a specified percentage, clipping each RGB component where the calculated brightness would
exceed full brightness. Thus, the brightest colors in the image would change chromaticity in addition to
not getting the specified brightness boost. For decreasing brightness, pamfunc should do the same thing
as pambrighten.
ppmflash does another kind of brightening. It changes the color of each pixel to bring it a specified
percentage closer to white. This increases the value and saturation.
pambrighten is meant to replace ppmbrighten. It is the same as ppmbrighten, except that it recognizes
the various Netpbm image formats rather than treating them all as PPM. The output format is the same as
the input format and extra channels in a PAM image (such as a transparency channel) get passed through.
If you want to modify the hues in the image, use pamhue.