Class MediaLibAccessor
- java.lang.Object
-
- com.github.jaiimageio.jpeg2000.impl.MediaLibAccessor
-
public class MediaLibAccessor extends Object
An adapter class for presenting image data in a mediaLibImage format, even if the data isn't stored that way. MediaLibAccessor is meant to make the common case (ComponentRasters) and allow them to be accelerated via medialib. Note that unlike RasterAccessor, MediaLibAccessor does not work with all cases. In the event that MediaLibAccessor can not deal with a give collection of Rasters, findCompatibleTag will return the value MediaLibAccessor.TAG_INCOMPATIBLE. OpImages that use MediaLibAccessor should be paired with RIF's which check that findCompatibleTag returns a valid tag before actually constructing the Mlib OpImage.
-
-
Field Summary
Fields Modifier and Type Field Description protected int[]bandOffsetsThe offsets of each band in the src imagestatic intBINARYFlag indicating data are binary.static intBINARY_MASKThe bits of a FormatTag associated with binary data.static intCOPIEDFlag indicating data is a copy of the raster's data.static intCOPY_MASKThe bits of a FormatTag associated with how dataArrays are obtained.static intDATATYPE_MASKThe bits of a FormatTag associated with pixel datatype.protected intformatTagTag indicating the data type of the data and whether its copiedstatic intNONBINARYFlag indicating data are not binary.protected intnumBandsThe number of bands per pixel in the data array.protected RasterrasterThe raster that is the source of pixel data.protected RectanglerectThe rectangle of the raster that MediaLibAccessor addresses.static intTAG_BYTE_COPIEDFormatTag indicating data in byte arrays and uncopied.static intTAG_BYTE_UNCOPIEDFormatTag indicating data in byte arrays and uncopied.static intTAG_DOUBLE_COPIEDFormatTag indicating data in double arrays and copied.static intTAG_DOUBLE_UNCOPIEDFormatTag indicating data in double arrays and uncopied.static intTAG_FLOAT_COPIEDFormatTag indicating data in float arrays and copied.static intTAG_FLOAT_UNCOPIEDFormatTag indicating data in float arrays and uncopied.static intTAG_INT_COPIEDFormatTag indicating data in short arrays and copied.static intTAG_INT_UNCOPIEDFormatTag indicating data in integer arrays and uncopied.static intTAG_SHORT_COPIEDFormatTag indicating data in short arrays and copied.static intTAG_SHORT_UNCOPIEDFormatTag indicating data in short arrays and uncopied.static intTAG_USHORT_COPIEDFormatTag indicating data in unsigned short arrays and copied.static intTAG_USHORT_UNCOPIEDFormatTag indicating data in unsigned short arrays and uncopied.static intUNCOPIEDFlag indicating data is raster's data.
-
Constructor Summary
Constructors Constructor Description MediaLibAccessor()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static intfindCompatibleTag(Raster src)Returns the most efficient FormatTag that is compatible with the destination raster and all source rasters.int[]getBandOffsets()Returns the bandOffsets.intgetDataType()Returns the data type of the RasterAccessor object.double[]getDoubleParameters(int band, double[] params)Returns parameters in the appropriate order if MediaLibAccessor has reordered the bands or is attempting to make a BandSequential image look like multiple PixelSequentialImagesint[][]getIntArrayParameters(int band, int[][] params)Returns parameters in the appropriate order if MediaLibAccessor has reordered the bands or is attempting to make a BandSequential image look like multiple PixelSequentialImagesint[]getIntParameters(int band, int[] params)Returns parameters in the appropriate order if MediaLibAccessor has reordered the bands or is attempting to make a BandSequential image look like multiple PixelSequentialImagesbooleanisBinary()Returnstrueif theMediaLibAccessorrepresents binary data.booleanisDataCopy()Returns true if the MediaLibAccessors's data is copied from it's raster.static booleanisPixelSequential(SampleModel sm)Determines if the SampleModel stores data in a way that can be represented by a mediaLibImage without copying
-
-
-
Field Detail
-
COPY_MASK
public static final int COPY_MASK
The bits of a FormatTag associated with how dataArrays are obtained.- See Also:
- Constant Field Values
-
UNCOPIED
public static final int UNCOPIED
Flag indicating data is raster's data.- See Also:
- Constant Field Values
-
COPIED
public static final int COPIED
Flag indicating data is a copy of the raster's data.- See Also:
- Constant Field Values
-
DATATYPE_MASK
public static final int DATATYPE_MASK
The bits of a FormatTag associated with pixel datatype.- See Also:
- Constant Field Values
-
BINARY_MASK
public static final int BINARY_MASK
The bits of a FormatTag associated with binary data.- See Also:
- Constant Field Values
-
NONBINARY
public static final int NONBINARY
Flag indicating data are not binary.- See Also:
- Constant Field Values
-
BINARY
public static final int BINARY
Flag indicating data are binary.- See Also:
- Constant Field Values
-
TAG_BYTE_UNCOPIED
public static final int TAG_BYTE_UNCOPIED
FormatTag indicating data in byte arrays and uncopied.- See Also:
- Constant Field Values
-
TAG_USHORT_UNCOPIED
public static final int TAG_USHORT_UNCOPIED
FormatTag indicating data in unsigned short arrays and uncopied.- See Also:
- Constant Field Values
-
TAG_SHORT_UNCOPIED
public static final int TAG_SHORT_UNCOPIED
FormatTag indicating data in short arrays and uncopied.- See Also:
- Constant Field Values
-
TAG_INT_UNCOPIED
public static final int TAG_INT_UNCOPIED
FormatTag indicating data in integer arrays and uncopied.- See Also:
- Constant Field Values
-
TAG_FLOAT_UNCOPIED
public static final int TAG_FLOAT_UNCOPIED
FormatTag indicating data in float arrays and uncopied.- See Also:
- Constant Field Values
-
TAG_DOUBLE_UNCOPIED
public static final int TAG_DOUBLE_UNCOPIED
FormatTag indicating data in double arrays and uncopied.- See Also:
- Constant Field Values
-
TAG_BYTE_COPIED
public static final int TAG_BYTE_COPIED
FormatTag indicating data in byte arrays and uncopied.- See Also:
- Constant Field Values
-
TAG_USHORT_COPIED
public static final int TAG_USHORT_COPIED
FormatTag indicating data in unsigned short arrays and copied.- See Also:
- Constant Field Values
-
TAG_SHORT_COPIED
public static final int TAG_SHORT_COPIED
FormatTag indicating data in short arrays and copied.- See Also:
- Constant Field Values
-
TAG_INT_COPIED
public static final int TAG_INT_COPIED
FormatTag indicating data in short arrays and copied.- See Also:
- Constant Field Values
-
TAG_FLOAT_COPIED
public static final int TAG_FLOAT_COPIED
FormatTag indicating data in float arrays and copied.- See Also:
- Constant Field Values
-
TAG_DOUBLE_COPIED
public static final int TAG_DOUBLE_COPIED
FormatTag indicating data in double arrays and copied.- See Also:
- Constant Field Values
-
numBands
protected int numBands
The number of bands per pixel in the data array.
-
bandOffsets
protected int[] bandOffsets
The offsets of each band in the src image
-
formatTag
protected int formatTag
Tag indicating the data type of the data and whether its copied
-
-
Constructor Detail
-
MediaLibAccessor
public MediaLibAccessor()
-
-
Method Detail
-
findCompatibleTag
public static int findCompatibleTag(Raster src)
Returns the most efficient FormatTag that is compatible with the destination raster and all source rasters.- Parameters:
srcs- the sourceRaster; may benull.dst- the destinationRaster.
-
isPixelSequential
public static boolean isPixelSequential(SampleModel sm)
Determines if the SampleModel stores data in a way that can be represented by a mediaLibImage without copying
-
isBinary
public boolean isBinary()
Returnstrueif theMediaLibAccessorrepresents binary data.
-
getDataType
public int getDataType()
Returns the data type of the RasterAccessor object. Note that this datatype is not necessarily the same data type as the underlying raster.
-
isDataCopy
public boolean isDataCopy()
Returns true if the MediaLibAccessors's data is copied from it's raster.
-
getBandOffsets
public int[] getBandOffsets()
Returns the bandOffsets.
-
getIntParameters
public int[] getIntParameters(int band, int[] params)
Returns parameters in the appropriate order if MediaLibAccessor has reordered the bands or is attempting to make a BandSequential image look like multiple PixelSequentialImages
-
getIntArrayParameters
public int[][] getIntArrayParameters(int band, int[][] params)
Returns parameters in the appropriate order if MediaLibAccessor has reordered the bands or is attempting to make a BandSequential image look like multiple PixelSequentialImages
-
getDoubleParameters
public double[] getDoubleParameters(int band, double[] params)
Returns parameters in the appropriate order if MediaLibAccessor has reordered the bands or is attempting to make a BandSequential image look like multiple PixelSequentialImages
-
-