Prev Class | Next Class | Frames | No Frames |
Summary: Nested | Field | Method | Constr | Detail: Nested | Field | Method | Constr |
java.lang.Object
java.awt.image.SampleModel
java.awt.image.ComponentSampleModel
public class ComponentSampleModel
extends SampleModel
Field Summary | |
protected int[] |
|
protected int[] |
|
protected int |
|
protected int |
|
protected int |
|
protected int |
|
Fields inherited from class java.awt.image.SampleModel | |
dataType , height , numBands , width |
Constructor Summary | |
| |
|
Method Summary | |
SampleModel |
|
DataBuffer |
|
SampleModel |
|
boolean | |
int[] |
|
int[] |
|
Object |
|
int |
|
int |
|
int |
|
int[] |
|
int |
|
int[] |
|
int |
|
int[] |
|
int |
|
int |
|
int |
|
void |
|
void |
|
void |
|
Methods inherited from class java.awt.image.SampleModel | |
createCompatibleSampleModel , createDataBuffer , createSubsetSampleModel , getDataElements , getDataElements , getDataType , getHeight , getNumBands , getNumDataElements , getPixel , getPixel , getPixel , getPixels , getPixels , getPixels , getSample , getSampleDouble , getSampleFloat , getSampleSize , getSampleSize , getSamples , getSamples , getSamples , getTransferType , getWidth , setDataElements , setDataElements , setPixel , setPixel , setPixel , setPixels , setPixels , setPixels , setSample , setSample , setSample , setSamples , setSamples , setSamples |
Methods inherited from class java.lang.Object | |
clone , equals , extends Object> getClass , finalize , hashCode , notify , notifyAll , toString , wait , wait , wait |
protected int[] bankIndices
The indices of the bank used to store each band in a data buffer.
protected int pixelStride
The number of data elements between a sample for one pixel and the corresponding sample for the next pixel in the same row.
protected int scanlineStride
The number of data elements between a sample in one row and the corresponding sample in the next row.
public ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bandOffsets)
Creates a new sample model that assumes that all bands are stored in a single bank of theDataBuffer
.Note that the
bandOffsets
array is copied to internal storage to prevent subsequent changes to the array from affecting this object.
- Parameters:
dataType
- the data type (one ofDataBuffer.TYPE_BYTE
,DataBuffer.TYPE_USHORT
,DataBuffer.TYPE_SHORT
,DataBuffer.TYPE_INT
,DataBuffer.TYPE_FLOAT
orDataBuffer.TYPE_DOUBLE
).w
- the width in pixels.h
- the height in pixels.pixelStride
- the number of data elements in the step from a sample in one pixel to the corresponding sample in the next pixel.scanlineStride
- the number of data elements in the step from a sample in a pixel to the corresponding sample in the pixel in the next row.bandOffsets
- the offset to the first element for each band, with the size of the array defining the number of bands (null
not permitted).
- Throws:
IllegalArgumentException
- ifdataType
is not one of the specified values.IllegalArgumentException
- ifw
is less than or equal to zero.IllegalArgumentException
- ifh
is less than or equal to zero.IllegalArgumentException
- ifw * h
exceedsInteger.MAX_VALUE
.IllegalArgumentException
- ifpixelStride
is negative.IllegalArgumentException
- ifscanlineStride
is less than or equal to zero.IllegalArgumentException
- ifbandOffsets
has zero length.
public ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bankIndices, int[] bandOffsets)
Creates a new sample model that assumes that all bands are stored in a single bank of theDataBuffer
.
- Parameters:
dataType
- the data type (one ofDataBuffer.TYPE_BYTE
,DataBuffer.TYPE_USHORT
,DataBuffer.TYPE_SHORT
,DataBuffer.TYPE_INT
,DataBuffer.TYPE_FLOAT
orDataBuffer.TYPE_DOUBLE
).w
- the width in pixels.h
- the height in pixels.pixelStride
- the number of data elements in the step from a sample in one pixel to the corresponding sample in the next pixel.scanlineStride
- the number of data elements in the step from a sample in a pixel to the corresponding sample in the pixel in the next row.bankIndices
- the index of the bank in which each band is stored (null
not permitted). This array is copied to internal storage so that subsequent updates to the array do not affect the sample model.bandOffsets
- the offset to the first element for each band, with the size of the array defining the number of bands (null
not permitted). This array is copied to internal storage so that subsequent updates to the array do not affect the sample model.
- Throws:
IllegalArgumentException
- ifdataType
is not one of the specified values.IllegalArgumentException
- ifw
is less than or equal to zero.IllegalArgumentException
- ifh
is less than or equal to zero.IllegalArgumentException
- ifw * h
exceedsInteger.MAX_VALUE
.IllegalArgumentException
- ifpixelStride
is negative.IllegalArgumentException
- ifscanlineStride
is less than or equal to zero.IllegalArgumentException
- ifbandOffsets
has zero length.
public SampleModel createCompatibleSampleModel(int w, int h)
Creates a new sample model that is compatible with this one, but with the specified dimensions.
- Overrides:
- createCompatibleSampleModel in interface SampleModel
- Parameters:
w
- the width (must be greater than zero).h
- the height (must be greater than zero).
- Returns:
- A new sample model.
public DataBuffer createDataBuffer()
Creates a new data buffer that is compatible with this sample model.
- Overrides:
- createDataBuffer in interface SampleModel
- Returns:
- The new data buffer.
public SampleModel createSubsetSampleModel(int[] bands)
Creates a new sample model that provides access to a subset of the bands that this sample model supports.
- Overrides:
- createSubsetSampleModel in interface SampleModel
- Parameters:
bands
- the bands (null
not permitted).
- Returns:
- The new sample model.
public boolean equals(Object obj)
Tests this sample model for equality with an arbitrary object. Returnstrue
if and only if:
obj
is notnull
;obj
is an instance ofComponentSampleModel
;- both models have the same values for the
dataType
,width
,height
,pixelStride
,scanlineStride
,bandOffsets
andbankIndices
fields.
- Parameters:
obj
- the object to test (null
permitted).
- Returns:
true
if this sample model is equal toobj
, andfalse
otherwise.
public final int[] getBandOffsets()
Returns the offsets to the first sample in each band. The returned array is a copy, so that altering it will not impact the sample model.
- Returns:
- The offsets.
public final int[] getBankIndices()
Returns the indices of the bank(s) in theDataBuffer
used to store the samples for each band. The returned array is a copy, so that altering it will not impact the sample model.
- Returns:
- The bank indices.
public Object getDataElements(int x, int y, Object obj, DataBuffer data)
Returns the samples for the pixel at location(x, y)
in a primitive array (the array type is determined by the data type for this model). Theobj
argument provides an option to supply an existing array to hold the result, if this isnull
a new array will be allocated.
- Overrides:
- getDataElements in interface SampleModel
- Parameters:
x
- the x-coordinate.y
- the y-coordinate.obj
- a primitive array that, if notnull
, will be used to store and return the sample values.data
- the data buffer (null
not permitted).
- Returns:
- An array of sample values for the specified pixel.
public final int getNumDataElements()
Returns the number of data elements used to store the samples for one pixel. In this model, this is the same as the number of bands.
- Overrides:
- getNumDataElements in interface SampleModel
- Returns:
- The number of data elements used to store the samples for one pixel.
public int getOffset(int x, int y)
Returns the offset of the sample in band 0 for the pixel at location(x, y)
. This offset can be used to read a sample value from aDataBuffer
.
- Parameters:
x
- the x-coordinate.y
- the y-coordinate.
- Returns:
- The offset.
- See Also:
getOffset(int,int,int)
public int getOffset(int x, int y, int b)
Returns the offset of the sample in bandb
for the pixel at location(x, y)
. This offset can be used to read a sample value from aDataBuffer
.
- Parameters:
x
- the x-coordinate.y
- the y-coordinate.b
- the band index.
- Returns:
- The offset.
public int[] getPixel(int x, int y, int[] iArray, DataBuffer data)
Returns all the samples for the pixel at location(x, y)
stored in the specified data buffer.
- Overrides:
- getPixel in interface SampleModel
- Parameters:
x
- the x-coordinate.y
- the y-coordinate.iArray
- an array that will be populated with the sample values and returned as the result. The size of this array should be equal to the number of bands in the model. If the array isnull
, a new array is created.data
- the data buffer (null
not permitted).
- Returns:
- The samples for the specified pixel.
- See Also:
setPixel(int,int,int[],DataBuffer)
public final int getPixelStride()
Returns the distance (in terms of element indices) between the sample for one pixel and the corresponding sample for the next pixel in a row. This is used in the calculation of the element offset for retrieving samples from aDataBuffer
.
- Returns:
- The distance between pixel samples in the same row.
public int[] getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
Returns the samples for all the pixels in a rectangular region.
- Overrides:
- getPixels in interface SampleModel
- Parameters:
x
- the x-coordinate.y
- the y-coordinate.w
- the width.h
- the height.iArray
- an array that if non-null
will be populated with the sample values and returned as the result.data
- the data buffer (null
not permitted).
- Returns:
- The samples for all the pixels in the rectangle.
public int getSample(int x, int y, int b, DataBuffer data)
Returns the sample for bandb
of the pixel at(x, y)
that is stored in the specified data buffer.
- Overrides:
- getSample in interface SampleModel
- Parameters:
x
- the x-coordinate.y
- the y-coordinate.b
- the band index.data
- the data buffer (null
not permitted).
- Returns:
- The sample value.
- Throws:
ArrayIndexOutOfBoundsException
- if(x, y)
is outside the bounds[0, 0, width, height]
.
public final int[] getSampleSize()
Returns the size in bits for each sample (one per band). For this sample model, each band has the same sample size and this is determined by the data type for the sample model.
- Overrides:
- getSampleSize in interface SampleModel
- Returns:
- The sample sizes.
- See Also:
SampleModel.getDataType()
public final int getSampleSize(int band)
Returns the size in bits for the samples in the specified band. In this class, the sample size is the same for every band and is determined from the data type for the model.
- Overrides:
- getSampleSize in interface SampleModel
- Parameters:
band
- the band index (ignored here).
- Returns:
- The sample size in bits.
- See Also:
SampleModel.getDataType()
public final int getScanlineStride()
Returns the distance (in terms of element indices) between the sample for one pixel and the corresponding sample for the equivalent pixel in the next row. This is used in the calculation of the element offset for retrieving samples from aDataBuffer
.
- Returns:
- The distance between pixel samples in consecutive rows.
public void setDataElements(int x, int y, Object obj, DataBuffer data)
Sets the samples for the pixel at location(x, y)
from the supplied primitive array (the array type must be consistent with the data type for this model).
- Overrides:
- setDataElements in interface SampleModel
- Parameters:
x
- the x-coordinate.y
- the y-coordinate.obj
- a primitive array containing the pixel's sample values.data
- the data buffer (null
not permitted).
public void setPixel(int x, int y, int[] iArray, DataBuffer data)
Sets the sample values for the pixel at location(x, y)
stored in the specified data buffer.
- Overrides:
- setPixel in interface SampleModel
- Parameters:
x
- the x-coordinate.y
- the y-coordinate.iArray
- the pixel sample values (null
not permitted).data
- the data buffer (null
not permitted).
- See Also:
getPixel(int,int,int[],DataBuffer)
public void setSample(int x, int y, int b, int s, DataBuffer data)
Sets the sample value for bandb
of the pixel at location(x, y)
in the specified data buffer.
- Overrides:
- setSample in interface SampleModel
- Parameters:
x
- the x-coordinate.y
- the y-coordinate.b
- the band index.s
- the sample value.data
- the data buffer (null
not permitted).
- See Also:
getSample(int,int,int,DataBuffer)