public class ImageTiler
extends java.lang.Object
| Constructor and Description |
|---|
ImageTiler(RandomAccess f,
long fileOffset,
int[] dims,
java.lang.Class base)
Create a tiler.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
fillFileData(java.lang.Object output,
int delta,
int outputOffset,
int segment)
File a tile segment from a file.
|
protected void |
fillMemData(java.lang.Object data,
int[] posits,
int length,
java.lang.Object output,
int outputOffset,
int dim)
Fill a single segment from memory.
|
protected void |
fillTile(java.lang.Object data,
java.lang.Object o,
int[] dims,
int[] corners,
int[] lengths)
Fill the subset.
|
java.lang.Object |
getCompleteImage()
Read the entire image into a multidimensional
array.
|
java.lang.Object |
getMemoryImage()
See if we can get the image data from memory.
|
static int |
getOffset(int[] dims,
int[] pos)
Get the offset of a given position.
|
java.lang.Object |
getTile(int[] corners,
int[] lengths)
Get a subset of the image.
|
void |
getTile(java.lang.Object outArray,
int[] corners,
int[] lengths)
Get a tile, filling in a prespecified array.
|
protected static boolean |
incrementPosition(int[] start,
int[] current,
int[] lengths)
Increment the offset within the position array.
|
public ImageTiler(RandomAccess f, long fileOffset, int[] dims, java.lang.Class base)
f - The random access device from which image data may be read.
This may be null if the tile information is available from
memory.fileOffset - The file offset within the RandomAccess device at which
the data begins.dims - The actual dimensions of the image.base - The base class (should be a primitive type) of the image.public java.lang.Object getMemoryImage()
public java.lang.Object getTile(int[] corners,
int[] lengths)
throws java.io.IOException
corners - The starting corner (using 0 as the start) for the image.lengths - The length requested in each dimension.java.io.IOExceptionpublic void getTile(java.lang.Object outArray,
int[] corners,
int[] lengths)
throws java.io.IOException
outArray - The output tile array. A one-dimensional
array.
Data not within the valid limits of the image will
be left unchanged. The length of this
array should be the product of lengths.corners - The corners of the tile.lengths - The dimensions of the tile.java.io.IOExceptionprotected void fillTile(java.lang.Object data,
java.lang.Object o,
int[] dims,
int[] corners,
int[] lengths)
throws java.io.IOException
data - The memory-resident data image.
This may be null if the image is to
be read from a file. This should
be a multi-dimensional primitive array.o - The tile to be filled. This is a
simple primitive array.dims - The dimensions of the full image.corners - The indices of the corner of the image.lengths - The dimensions of the subset.java.io.IOExceptionprotected void fillMemData(java.lang.Object data,
int[] posits,
int length,
java.lang.Object output,
int outputOffset,
int dim)
data - The in-memory image data.posits - The current position for which data is requested.length - The size of the segments.output - The output tile.outputOffset - The current offset into the output tile.dim - The current dimension beingprotected void fillFileData(java.lang.Object output,
int delta,
int outputOffset,
int segment)
throws java.io.IOException
output - The output tile.delta - The offset from the beginning of the image in bytes.outputOffset - The index into the output array.segment - The number of elements to be read for this segment.java.io.IOExceptionprotected static boolean incrementPosition(int[] start,
int[] current,
int[] lengths)
start - The starting corner values.current - The current offsets.lengths - The desired dimensions of the subset.public static final int getOffset(int[] dims,
int[] pos)
dims - The dimensions of the array.pos - The index requested.public java.lang.Object getCompleteImage()
throws java.io.IOException
java.io.IOException