EnglishFrenchSpanish

OnWorks favicon

pnmgamma - Online in the Cloud

Run pnmgamma in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command pnmgamma that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

PROGRAM:

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.

Use pnmgamma online using onworks.net services


Free Servers & Workstations

Download Windows & Linux apps

  • 1
    archlabs_repo
    archlabs_repo
    Package repo for ArchLabs This is an
    application that can also be fetched
    from
    https://sourceforge.net/projects/archlabs-repo/.
    It has been hosted in OnWorks in...
    Download archlabs_repo
  • 2
    Zephyr Project
    Zephyr Project
    The Zephyr Project is a new generation
    real-time operating system (RTOS) that
    supports multiple hardware
    architectures. It is based on a
    small-footprint kernel...
    Download Zephyr Project
  • 3
    SCons
    SCons
    SCons is a software construction tool
    that is a superior alternative to the
    classic "Make" build tool that
    we all know and love. SCons is
    implemented a...
    Download SCons
  • 4
    PSeInt
    PSeInt
    PSeInt is a pseudo-code interpreter for
    spanish-speaking programming students.
    Its main purpose is to be a tool for
    learning and understanding the basic
    concep...
    Download PSeInt
  • 5
    oStorybook
    oStorybook
    oStorybook l'outil privil�gi� des
    �crivains. ATTENTION : voir sur
    http://ostorybook.tuxfamily.org/v5/
    --en_EN oStorybook the right tool for
    writers. WARNIN...
    Download oStorybook
  • 6
    Asuswrt-Merlin
    Asuswrt-Merlin
    Asuswrt-Merlin is a third party
    firmware for select Asus wireless
    routers. Based on the Asuswrt firmware
    developed by Asus, it brings tweaks, new
    features and ...
    Download Asuswrt-Merlin
  • More »

Linux commands

  • 1
    aafigure
    aafigure
    aafigure - convert ASCII art to an
    image ...
    Run aafigure
  • 2
    aafire
    aafire
    aafire, aainfo, aasavefont, aatest -
    aalib example programs ...
    Run aafire
  • 3
    coqtop.opt
    coqtop.opt
    coqtop.opt - The native-code Coq
    toplevel ...
    Run coqtop.opt
  • 4
    coqwc
    coqwc
    coqwc - print the number of
    specification, proof and comment lines
    in Coq files ...
    Run coqwc
  • 5
    g15composer
    g15composer
    g15composer - Scriptable command
    interface to libg15render(3) drawing
    functions DESCRIPTION: G15composer is a
    scriptable command interface to the
    libg15render ...
    Run g15composer
  • 6
    g15daemon
    g15daemon
    g15daemon - provides access to extra
    keys and the LCD available on the
    logitech G15 keyboard. DESCRIPTION:
    G15Daemon allows users access to all
    extra keys by d...
    Run g15daemon
  • More »

Ad