ByteLookupTablepublic class ByteLookupTable extends LookupTable This class defines a lookup table object. The output of a
lookup operation using an object of this class is interpreted
as an unsigned byte quantity. The lookup table contains byte
data arrays for one or more bands (or components) of an image,
and it contains an offset which will be subtracted from the
input values before indexing 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. |
Fields Summary |
---|
byte[] | dataConstants |
Constructors Summary |
---|
public ByteLookupTable(int offset, byte[] data)Constructs a ByteLookupTable object from an array of byte
arrays representing a lookup table for each
band. The offset will be subtracted from input
values before indexing into the arrays. The number of
bands is the length of the data argument. The
data array for each band is stored as a reference.
super(offset,data.length);
numComponents = data.length;
numEntries = data[0].length;
this.data = new byte[numComponents][];
// Allocate the array and copy the data reference
for (int i=0; i < numComponents; i++) {
this.data[i] = data[i];
}
| public ByteLookupTable(int offset, byte[] data)Constructs a ByteLookupTable object from an array
of bytes representing a lookup table to be applied to all
bands. The offset will be subtracted from input
values before indexing into the array.
The data array is stored as a reference.
super(offset,data.length);
numComponents = 1;
numEntries = data.length;
this.data = new byte[1][];
this.data[0] = data;
|
Methods Summary |
---|
public final byte[][] | getTable()Returns the lookup table data by reference. If this ByteLookupTable
was constructed using a single byte array, the length of the returned
array is one.
return data;
| public int[] | lookupPixel(int[] src, int[] dst)Returns an array of samples of a pixel, translated with the lookup
table. The source and destination array can be the same array.
Array dst is returned.
if (dst == null) {
// Need to alloc a new destination array
dst = new int[src.length];
}
if (numComponents == 1) {
// Apply one LUT to all bands
for (int i=0; i < src.length; i++) {
int s = src[i] - offset;
if (s < 0) {
throw new ArrayIndexOutOfBoundsException("src["+i+
"]-offset is "+
"less than zero");
}
dst[i] = (int) data[0][s];
}
}
else {
for (int i=0; i < src.length; i++) {
int s = src[i] - offset;
if (s < 0) {
throw new ArrayIndexOutOfBoundsException("src["+i+
"]-offset is "+
"less than zero");
}
dst[i] = (int) data[i][s];
}
}
return dst;
| public byte[] | lookupPixel(byte[] src, byte[] dst)Returns an array of samples of a pixel, translated with the lookup
table. The source and destination array can be the same array.
Array dst is returned.
if (dst == null) {
// Need to alloc a new destination array
dst = new byte[src.length];
}
if (numComponents == 1) {
// Apply one LUT to all bands
for (int i=0; i < src.length; i++) {
int s = (src[i]&0xff) - offset;
if (s < 0) {
throw new ArrayIndexOutOfBoundsException("src["+i+
"]-offset is "+
"less than zero");
}
dst[i] = data[0][s];
}
}
else {
for (int i=0; i < src.length; i++) {
int s = (src[i]&0xff) - offset;
if (s < 0) {
throw new ArrayIndexOutOfBoundsException("src["+i+
"]-offset is "+
"less than zero");
}
dst[i] = data[i][s];
}
}
return dst;
|
|