cdox.util.image
Class GammaCorrection
java.lang.Object
java.util.Observable
cdox.util.image.CorrectorSlider
cdox.util.image.GammaCorrection
- All Implemented Interfaces:
- javax.swing.event.ChangeListener, java.util.EventListener, ImageCorrector
- public class GammaCorrection
- extends CorrectorSlider
- implements ImageCorrector
This class highers or loweres the gamma of a BufferedImage. It uses a lookupTable to
do so. To use this class you can call one of its two constructors. If you've designed
your own Jslider classes you can use the constructor which takes a float-value. You than
can use the setValue(float val) method to set the value to work with. And than call the
filter method to filter the BufferedImage.
- Version:
- May 22nd 2002
- Author:
- Rutger Bezema, Andreas Schmitz
- See Also:
CorrectorSlider
Constructor Summary |
GammaCorrection(float val)
This constructor creates a new GammaCorrection Object with its initial-Value set to val. |
GammaCorrection(java.util.Observer obs,
java.lang.String paneTitle)
This constructor creates a new GammaCorrection Object, with a JSlider in a JPanel with a
titledBorder set with the name paneTitle. |
Method Summary |
java.awt.image.BufferedImage |
filter(java.awt.image.BufferedImage source,
java.awt.image.BufferedImage dest)
The actual filtering is done in this method defined in ImageCorrector. |
Methods inherited from class java.util.Observable |
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
GammaCorrection
public GammaCorrection(java.util.Observer obs,
java.lang.String paneTitle)
- This constructor creates a new GammaCorrection Object, with a JSlider in a JPanel with a
titledBorder set with the name paneTitle. The values of the JSlider are standardly
min=-0, max = 300, initValue=100, spacings=100, textatSpacing=-1,(constructs a new Hashmap)
graptogrid=false. The Observer is called when the JSlider is moved. This Observer
could be a preview pane or anything else.
- Parameters:
obs
- The Observer to handle the BufferedImage.paneTitle
- the title of the titledBorder of the JPane surrounding the JSlider.- See Also:
CorrectorSlider.CorrectorSlider(Observer, String, int, int, int, int, int, boolean).
GammaCorrection
public GammaCorrection(float val)
- This constructor creates a new GammaCorrection Object with its initial-Value set to val. It
has no JSlider and the value of this class (to work with) should be set by calling
setValue(float val).
- Parameters:
val
- the initial float value.- See Also:
CorrectorSlider.CorrectorSlider(float)
,
CorrectorSlider.setValue(float)
filter
public java.awt.image.BufferedImage filter(java.awt.image.BufferedImage source,
java.awt.image.BufferedImage dest)
The actual filtering is done in this method defined in ImageCorrector. It uses a
ShortLookupTable to make the gamma higher or lower for all the four chanels (Red,
Green, Blue, Alpha). First the short-array is filled with the values, the
colornumber = i(between 0-255)are powered to(1/current-value)(set by the JSlider or
setValue(float val)) which is afterwards multiplied with 255(white) this ensures
that all dark colors (small i) are upped and the light colors(large i) are upped a
little (to none). After that this short-array is copied in a
2-dimensional-short-array, which represent the color-chanels. With BufferedImageOp a
new LookupOp is done, which will be used to filter the source BufferedImage.
To make sure the source-BufferedImage can be "gamma-ed" the image is redrawn on
a new BufferedImage which will be filtered. If the destination BufferedImage is
null, a new BufferedImage is returned, if not it must have the same height and width
as the source-BufferedImage. If not a new BufferedImage is returned.
- Specified by:
filter
in interface ImageCorrector
- Parameters:
source
- the BufferedImage to be filtered,dest
- the Destination-BufferedImage with the same height and width as Source,
and which may be null.
- Returns:
- the filtered BufferedImage.
- See Also:
ImageCorrector
,
CorrectorSlider.setValue(float)