java.awt.image
Class LookupOp

java.lang.Object
  extended by java.awt.image.LookupOp
All Implemented Interfaces:
BufferedImageOp, RasterOp

public class LookupOp
extends Object
implements BufferedImageOp, RasterOp

LookupOp is a filter that converts each pixel using a lookup table. For filtering Rasters, the lookup table must have either one component that is applied to all bands, or one component for every band in the Rasters. For BufferedImages, the lookup table may apply to both color and alpha components. If the lookup table contains one component, or if there are the same number of components as color components in the source, the table applies to all color components. Otherwise the table applies to all components including alpha. Alpha premultiplication is ignored during the lookup filtering. After filtering, if color conversion is necessary, the conversion happens, taking alpha premultiplication into account.


Constructor Summary
LookupOp(LookupTable lookup, RenderingHints hints)
          Construct a new LookupOp using the given LookupTable.
 
Method Summary
 BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel dstCM)
          Returns a new BufferedImage that can be used by this BufferedImageOp as the destination image when filtering the specified source image.
 WritableRaster createCompatibleDestRaster(Raster src)
          Returns a raster that can be used by this RasterOp as the destination raster when operating on the specified source raster.
 BufferedImage filter(BufferedImage src, BufferedImage dst)
          Converts the source image using the lookup table specified in the constructor.
 WritableRaster filter(Raster src, WritableRaster dest)
          Filter a raster through a lookup table.
 Rectangle2D getBounds2D(BufferedImage src)
          Returns the bounds of the destination image on the basis of this BufferedImageOp being applied to the specified source image.
 Rectangle2D getBounds2D(Raster src)
          Returns the bounds of the destination raster on the basis of this RasterOp being applied to the specified source raster.
 Point2D getPoint2D(Point2D src, Point2D dst)
          Returns the corresponding destination point for a given source point.
 RenderingHints getRenderingHints()
          Returns the rendering hints for this operation.
 LookupTable getTable()
          Return the LookupTable for this op.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LookupOp

public LookupOp(LookupTable lookup,
                RenderingHints hints)
Construct a new LookupOp using the given LookupTable.

Parameters:
lookup - LookupTable to use.
hints - Rendering hints (can be null).
Method Detail

filter

public final BufferedImage filter(BufferedImage src,
                                  BufferedImage dst)
Converts the source image using the lookup table specified in the constructor. The resulting image is stored in the destination image if one is provided; otherwise a new BufferedImage is created and returned. The source image cannot use an IndexColorModel, and the destination image (if one is provided) must have the same size.

Specified by:
filter in interface BufferedImageOp
Parameters:
src - The source image.
dst - The destination image.
Returns:
The convolved image.
Throws:
IllegalArgumentException - if the rasters and/or color spaces are incompatible.
ArrayIndexOutOfBoundsException - if a pixel in the source is not contained in the LookupTable.

getBounds2D

public final Rectangle2D getBounds2D(BufferedImage src)
Description copied from interface: BufferedImageOp
Returns the bounds of the destination image on the basis of this BufferedImageOp being applied to the specified source image.

Specified by:
getBounds2D in interface BufferedImageOp
Parameters:
src - the source image.
Returns:
The destination bounds.

createCompatibleDestImage

public BufferedImage createCompatibleDestImage(BufferedImage src,
                                               ColorModel dstCM)
Description copied from interface: BufferedImageOp
Returns a new BufferedImage that can be used by this BufferedImageOp as the destination image when filtering the specified source image.

Specified by:
createCompatibleDestImage in interface BufferedImageOp
Parameters:
src - the source image.
dstCM - the color model for the destination image.
Returns:
A new image that can be used as the destination image.

getPoint2D

public final Point2D getPoint2D(Point2D src,
                                Point2D dst)
Returns the corresponding destination point for a given source point. This Op will return the source point unchanged.

Specified by:
getPoint2D in interface BufferedImageOp
Specified by:
getPoint2D in interface RasterOp
Parameters:
src - The source point.
dst - The destination point.
Returns:
The destination point.

getTable

public final LookupTable getTable()
Return the LookupTable for this op.

Returns:
The lookup table.

getRenderingHints

public final RenderingHints getRenderingHints()
Description copied from interface: BufferedImageOp
Returns the rendering hints for this operation.

Specified by:
getRenderingHints in interface BufferedImageOp
Specified by:
getRenderingHints in interface RasterOp
Returns:
The rendering hints.

filter

public final WritableRaster filter(Raster src,
                                   WritableRaster dest)
Filter a raster through a lookup table. Applies the lookup table for this Rasterop to each pixel of src and puts the results in dest. If dest is null, a new Raster is created and returned.

Specified by:
filter in interface RasterOp
Parameters:
src - The source raster.
dest - The destination raster.
Returns:
The WritableRaster with the filtered pixels.
Throws:
IllegalArgumentException - if lookup table has more than one component but not the same as src and dest.
ArrayIndexOutOfBoundsException - if a pixel in the source is not contained in the LookupTable.

getBounds2D

public final Rectangle2D getBounds2D(Raster src)
Description copied from interface: RasterOp
Returns the bounds of the destination raster on the basis of this RasterOp being applied to the specified source raster.

Specified by:
getBounds2D in interface RasterOp
Parameters:
src - the source raster.
Returns:
The destination bounds.

createCompatibleDestRaster

public WritableRaster createCompatibleDestRaster(Raster src)
Description copied from interface: RasterOp
Returns a raster that can be used by this RasterOp as the destination raster when operating on the specified source raster.

Specified by:
createCompatibleDestRaster in interface RasterOp
Parameters:
src - the source raster.
Returns:
A new writable raster that can be used as the destination raster.