Provided by: netpbm_10.0-15.4_amd64 bug

NAME

       pnmgamma - perform gamma correction on a portable anymap

SYNOPSIS

       pnmgamma [-ungamma] [-cieramp|-srgbramp] [value [pnmfile]]
       pnmgamma [-ungamma] [-cieramp|-srgbramp] redgamma greengamma bluegamma [pnmfile]

DESCRIPTION

       Performs gamma correction on pseudo-PNM images.

       The  PPM  format  specification  specify  that  certain  sample  values in a file represent certain light
       intensities in an image.  In particular, they specify that the sample values are directly proportional to
       gamma-corrected intensity values.  The gamma correction they specify is CIE Rec. 709.

       However,  people  sometimes  work  with  approximations of PPM and PGM where the relationship between the
       image intensities and the sample values are something else.  For  example,  the  sample  value  might  be
       directly  proportional to the intensity with no gamma correction (often called "linear intensity").  Or a
       different gamma transfer function may be used.

       pnmgamma allows you to manipulate the transfer function, thus working  with  and/or  creating  pseudo-PPM
       files that are useful for various things.

       For  example, if you feed a true PPM to pnmgamma -cieramp -ungamma, you get as output a file which is PPM
       in every respect except that the sample values are directly proportional to the light intensities in  the
       image.  If you feed such a file to pnmgamma -cieramp, you get out a true PPM.

       The situation for PGM images is analogous.  And pnmgamma treats PBM images as PGM images.

       When you feed a linear PPM image to a display program that expects a true PPM, the display appears darker
       than it should, so pnmgamma has the effect of lightening the image.  When  you  feed  a  true  PPM  to  a
       display  program  that  expects linear sample values, and therefore does a gamma correction of its own on
       them, the display appears lighter than it should, so pnmgamma with a  gamma  value  less  than  one  (the
       multiplicative  inverse of whatever gamma value the display program uses) has the effect of darkening the
       image.

PARAMETERS

       The only parameters are the specification of the input image file and  the  gamma  values.   Every  gamma
       transfer  function  pnmgamma uses contains an exponent, which is the gamma value, and you can choose that
       value.

       Furthermore, you can choose different values for each of the three RGB components.  If you  specify  only
       one gamma value, pnmgamma uses that value for all three RGB components.

       If  you  don't  specify  any  gamma  parameters,  pnmgamma chooses a default.  For the transfer functions
       defined by standards, the default is the value defined by the standard.  If you  specify  anything  else,
       you  will  be  varying  from  the standard.  For the simple power function transfer function, the default
       gamma is 1/.45.

OPTIONS

       -ungamma
              Apply the inverse of the specified transfer  function  (i.e.  go  from  gamma-corrected  nonlinear
              intensities to linear intensities).

       -cieramp
              Use  the  CIE Rec. 709 gamma transfer function.  Note that it is true CIE Rec. 709 only if you use
              the default gamma value (i.e. don't specify any gamma parameters).  This transfer  function  is  a
              power function modified with a linear ramp near black.

              If  you  specify  neither -cieramp nor -srgbramp, the transfer function defaults to a simple power
              function.

       -srgbramp
              Use the Internation Electrotechnical Commission (IEC) SRGB gamma transfer function  (as  specified
              in the standard IEC 61966-2-1).  Note that it is true SRGB only if you use the default gamma value
              (i.e. don't specify any gamma parameters).  This transfer function is like  the  one  selected  by
              -cieramp, but with different constants in it.

              Note  that  SRGB  is  often spelled "sRGB".  In this document, we use standard English typography,
              though, which doesn't allow for that kind of capitalization.

              If you specify neither -cieramp nor -srgbramp, the transfer function defaults to  a  simple  power
              function.

WHAT IS GAMMA?

       A      good     explanation     of     gamma     is     in     Charles     Poynton's     GammaFAQ      at
       <http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html>          and          ColorFAQ           at
       <http://www.poynton.com/notes/colour_and_gamma/GammaFAQ.html>

       In  brief:  The simplest way to code an image is by using sample values that are directly proportional to
       the intensity of the color components.  But that wastes the sample space  because  the  human  eye  can't
       discern  differences  between  low-intensity  colors as well as it can between high-intensity colors.  So
       instead, we pass the light intensity values through a transfer function that makes it so that changing  a
       sample value by 1 causes the same level of perceived color change anywhere in the sample range.  We store
       those resulting values in the image file.  That transfer function is called the gamma  transfer  function
       and the transformation is called gamma correcting.

       Virtually  all  image  formats, either specified or de facto, use gamma-corrected values for their sample
       values.

       What's really nice about gamma is that by coincidence, the inverse  function  that  you  have  to  do  to
       convert  the  gamma-corrected  values  back to real light intensities is done automatically by CRTs.  You
       just apply a voltage to the CRT's electron gun that is proportional to the gamma-corrected sample  value,
       and  the  intensity  of light that comes out of the screen is close to the intensity value you had before
       you applied the gamma transfer function!

       And when you consider that computer video devices usually want you to  store  in  video  memory  a  value
       proportional  to  the  signal  voltage  you  want  to  go  to the monitor, which the monitor turns into a
       proportional drive voltage on the electron gun, it is really  convenient  to  work  with  gamma-corrected
       sample values.

SEE ALSO

       pnm(5)

AUTHOR

       Copyright (C) 1991 by Bill Davidson and Jef Poskanzer.

                                                  11 June 2001                                       pnmgamma(1)