Package org.esa.snap.core.util.jai
Class SingleBandedSampleModel
- java.lang.Object
-
- java.awt.image.SampleModel
-
- java.awt.image.ComponentSampleModel
-
- javax.media.jai.ComponentSampleModelJAI
-
- org.esa.snap.core.util.jai.SingleBandedSampleModel
-
public class SingleBandedSampleModel extends javax.media.jai.ComponentSampleModelJAI
This class represents image data which is composed of a single band so that (a pixel comprises a single sample and occupies one data element of the DataBuffer). It subclasses ComponentSampleModelJAI but provides a more efficent implementation for accessing pixel interleaved image data than is provided by ComponentSampleModelJAI. This class stores sample data in a single bank of the DataBuffer. Accessor methods are provided so that image data can be manipulated directly. This class supportsTYPE_BYTE
,TYPE_USHORT
,TYPE_SHORT
,TYPE_INT
,TYPE_FLOAT
andTYPE_DOUBLE
datatypes.
-
-
Field Summary
-
Fields inherited from class java.awt.image.ComponentSampleModel
bandOffsets, bankIndices, numBands, numBanks, pixelStride, scanlineStride
-
Fields inherited from class java.awt.image.SampleModel
dataType, height, width
-
-
Constructor Summary
Constructors Constructor Description SingleBandedSampleModel(int dataType, int w, int h)
Constructs a SingleBandSampleModel with the specified parameters.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SampleModel
createCompatibleSampleModel(int w, int h)
Creates a new SingleBandSampleModel with the specified width and height.SampleModel
createSubsetSampleModel(int[] bands)
Simply callscreateCompatibleSampleModel(width, height)
.Object
getDataElements(int x, int y, int w, int h, Object obj, DataBuffer data)
int
getOffset(int x, int y)
int
getOffset(int x, int y, int b)
double[]
getPixel(int x, int y, double[] array, DataBuffer data)
float[]
getPixel(int x, int y, float[] array, DataBuffer data)
int[]
getPixel(int x, int y, int[] array, DataBuffer data)
double[]
getPixels(int x, int y, int w, int h, double[] array, DataBuffer data)
float[]
getPixels(int x, int y, int w, int h, float[] array, DataBuffer data)
int[]
getPixels(int x, int y, int w, int h, int[] array, DataBuffer data)
int
getSample(int x, int y, int b, DataBuffer data)
double
getSampleDouble(int x, int y, int b, DataBuffer data)
float
getSampleFloat(int x, int y, int b, DataBuffer data)
double[]
getSamples(int x, int y, int w, int h, int b, double[] array, DataBuffer data)
float[]
getSamples(int x, int y, int w, int h, int b, float[] array, DataBuffer data)
int[]
getSamples(int x, int y, int w, int h, int b, int[] array, DataBuffer data)
void
setDataElements(int x, int y, int w, int h, Object obj, DataBuffer data)
void
setPixel(int x, int y, double[] array, DataBuffer data)
void
setPixel(int x, int y, float[] array, DataBuffer data)
void
setPixel(int x, int y, int[] array, DataBuffer data)
void
setPixels(int x, int y, int w, int h, double[] array, DataBuffer data)
void
setPixels(int x, int y, int w, int h, float[] array, DataBuffer data)
void
setPixels(int x, int y, int w, int h, int[] array, DataBuffer data)
void
setSample(int x, int y, int b, double s, DataBuffer data)
void
setSample(int x, int y, int b, float s, DataBuffer data)
void
setSample(int x, int y, int b, int s, DataBuffer data)
void
setSamples(int x, int y, int w, int h, int b, double[] array, DataBuffer data)
void
setSamples(int x, int y, int w, int h, int b, float[] array, DataBuffer data)
void
setSamples(int x, int y, int w, int h, int b, int[] array, DataBuffer data)
-
Methods inherited from class javax.media.jai.ComponentSampleModelJAI
createDataBuffer, getDataElements, setDataElements, toString
-
Methods inherited from class java.awt.image.ComponentSampleModel
equals, getBandOffsets, getBankIndices, getNumDataElements, getPixelStride, getSampleSize, getSampleSize, getScanlineStride, hashCode
-
Methods inherited from class java.awt.image.SampleModel
getDataType, getHeight, getNumBands, getTransferType, getWidth
-
-
-
-
Constructor Detail
-
SingleBandedSampleModel
public SingleBandedSampleModel(int dataType, int w, int h)
Constructs a SingleBandSampleModel with the specified parameters. The number of bands will be given by the length of the bandOffsets array.- Parameters:
dataType
- The data type for storing samples.w
- The width (in pixels) of the region of image data described.h
- The height (in pixels) of the region of image data described.- Throws:
IllegalArgumentException
- ifw
orh
is not greater than 0 or ifdataType
is not one of the supported data types
-
-
Method Detail
-
createCompatibleSampleModel
public SampleModel createCompatibleSampleModel(int w, int h)
Creates a new SingleBandSampleModel with the specified width and height. The new SingleBandSampleModel will have the same storage data type as this SingleBandSampleModel.- Overrides:
createCompatibleSampleModel
in classjavax.media.jai.ComponentSampleModelJAI
- Parameters:
w
- the width of the resultingSampleModel
h
- the height of the resultingSampleModel
- Returns:
- a new
SampleModel
with the specified width and height. - Throws:
IllegalArgumentException
- ifw
orh
is not greater than 0
-
createSubsetSampleModel
public SampleModel createSubsetSampleModel(int[] bands)
Simply callscreateCompatibleSampleModel(width, height)
.- Overrides:
createSubsetSampleModel
in classjavax.media.jai.ComponentSampleModelJAI
- Parameters:
bands
- Ignored.- Returns:
- a new
org.esa.snap.jai.SingleBandSampleModel
.
-
getOffset
public final int getOffset(int x, int y)
- Overrides:
getOffset
in classComponentSampleModel
-
getOffset
public final int getOffset(int x, int y, int b)
- Overrides:
getOffset
in classComponentSampleModel
-
getDataElements
public Object getDataElements(int x, int y, int w, int h, Object obj, DataBuffer data)
- Overrides:
getDataElements
in classjavax.media.jai.ComponentSampleModelJAI
-
setDataElements
public void setDataElements(int x, int y, int w, int h, Object obj, DataBuffer data)
- Overrides:
setDataElements
in classjavax.media.jai.ComponentSampleModelJAI
-
getPixels
public int[] getPixels(int x, int y, int w, int h, int[] array, DataBuffer data)
- Overrides:
getPixels
in classComponentSampleModel
-
getPixels
public float[] getPixels(int x, int y, int w, int h, float[] array, DataBuffer data)
- Overrides:
getPixels
in classSampleModel
-
getPixels
public double[] getPixels(int x, int y, int w, int h, double[] array, DataBuffer data)
- Overrides:
getPixels
in classjavax.media.jai.ComponentSampleModelJAI
-
setPixels
public void setPixels(int x, int y, int w, int h, int[] array, DataBuffer data)
- Overrides:
setPixels
in classComponentSampleModel
-
setPixels
public void setPixels(int x, int y, int w, int h, float[] array, DataBuffer data)
- Overrides:
setPixels
in classSampleModel
-
setPixels
public void setPixels(int x, int y, int w, int h, double[] array, DataBuffer data)
- Overrides:
setPixels
in classSampleModel
-
getPixel
public int[] getPixel(int x, int y, int[] array, DataBuffer data)
- Overrides:
getPixel
in classComponentSampleModel
-
getPixel
public float[] getPixel(int x, int y, float[] array, DataBuffer data)
- Overrides:
getPixel
in classSampleModel
-
getPixel
public double[] getPixel(int x, int y, double[] array, DataBuffer data)
- Overrides:
getPixel
in classSampleModel
-
setPixel
public void setPixel(int x, int y, int[] array, DataBuffer data)
- Overrides:
setPixel
in classComponentSampleModel
-
setPixel
public void setPixel(int x, int y, float[] array, DataBuffer data)
- Overrides:
setPixel
in classSampleModel
-
setPixel
public void setPixel(int x, int y, double[] array, DataBuffer data)
- Overrides:
setPixel
in classSampleModel
-
getSamples
public int[] getSamples(int x, int y, int w, int h, int b, int[] array, DataBuffer data)
- Overrides:
getSamples
in classComponentSampleModel
-
getSamples
public float[] getSamples(int x, int y, int w, int h, int b, float[] array, DataBuffer data)
- Overrides:
getSamples
in classSampleModel
-
getSamples
public double[] getSamples(int x, int y, int w, int h, int b, double[] array, DataBuffer data)
- Overrides:
getSamples
in classSampleModel
-
setSamples
public void setSamples(int x, int y, int w, int h, int b, int[] array, DataBuffer data)
- Overrides:
setSamples
in classComponentSampleModel
-
setSamples
public void setSamples(int x, int y, int w, int h, int b, float[] array, DataBuffer data)
- Overrides:
setSamples
in classSampleModel
-
setSamples
public void setSamples(int x, int y, int w, int h, int b, double[] array, DataBuffer data)
- Overrides:
setSamples
in classSampleModel
-
getSample
public int getSample(int x, int y, int b, DataBuffer data)
- Overrides:
getSample
in classComponentSampleModel
-
getSampleFloat
public float getSampleFloat(int x, int y, int b, DataBuffer data)
- Overrides:
getSampleFloat
in classjavax.media.jai.ComponentSampleModelJAI
-
getSampleDouble
public double getSampleDouble(int x, int y, int b, DataBuffer data)
- Overrides:
getSampleDouble
in classjavax.media.jai.ComponentSampleModelJAI
-
setSample
public void setSample(int x, int y, int b, int s, DataBuffer data)
- Overrides:
setSample
in classComponentSampleModel
-
setSample
public void setSample(int x, int y, int b, float s, DataBuffer data)
- Overrides:
setSample
in classjavax.media.jai.ComponentSampleModelJAI
-
setSample
public void setSample(int x, int y, int b, double s, DataBuffer data)
- Overrides:
setSample
in classjavax.media.jai.ComponentSampleModelJAI
-
-