/*
* Copyright (c) 1997, 2000, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package java.awt.image;
/**
* This abstract class defines a lookup table object. ByteLookupTable
* and ShortLookupTable are subclasses, which
* contain byte and short data, respectively. A lookup table
* contains data arrays for one or more bands (or components) of an image
* (for example, separate arrays for R, G, and B),
* and it contains an offset which will be subtracted from the
* input values before indexing into the arrays. This allows an array
* smaller than the native data size to be provided for a
* constrained input. If there is only one array in the lookup
* table, it will be applied to all bands. All arrays must be the
* same size.
*
* @see ByteLookupTable
* @see ShortLookupTable
* @see LookupOp
*/
public abstract class
LookupTable extends
Object{
/**
* Constants
*/
int
numComponents;
int
offset;
int
numEntries;
/**
* Constructs a new LookupTable from the number of components and an offset
* into the lookup table.
* @param offset the offset to subtract from input values before indexing
* into the data arrays for this <code>LookupTable</code>
* @param numComponents the number of data arrays in this
* <code>LookupTable</code>
* @throws IllegalArgumentException if <code>offset</code> is less than 0
* or if <code>numComponents</code> is less than 1
*/
protected
LookupTable(int
offset, int
numComponents) {
if (
offset < 0) {
throw new
IllegalArgumentException("Offset must be greater than 0");
}
if (
numComponents < 1) {
throw new
IllegalArgumentException("Number of components must "+
" be at least 1");
}
this.
numComponents =
numComponents;
this.
offset =
offset;
}
/**
* Returns the number of components in the lookup table.
* @return the number of components in this <code>LookupTable</code>.
*/
public int
getNumComponents() {
return
numComponents;
}
/**
* Returns the offset.
* @return the offset of this <code>LookupTable</code>.
*/
public int
getOffset() {
return
offset;
}
/**
* Returns an <code>int</code> array of components for
* one pixel. The <code>dest</code> array contains the
* result of the lookup and is returned. If dest is
* <code>null</code>, a new array is allocated. The
* source and destination can be equal.
* @param src the source array of components of one pixel
* @param dest the destination array of components for one pixel,
* translated with this <code>LookupTable</code>
* @return an <code>int</code> array of components for one
* pixel.
*/
public abstract int[]
lookupPixel(int[]
src, int[]
dest);
}