Top Description Fields Constructors Methods
java.awt.image

public Class ComponentSampleModel

extends SampleModel
Class Inheritance
Known Direct Subclasses
java.awt.image.PixelInterleavedSampleModel, java.awt.image.BandedSampleModel
Imports
java.util.Arrays

This class represents image data which is stored such that each sample of a pixel occupies one data element of the DataBuffer. It stores the N samples which make up a pixel in N separate data array elements. Different bands may be in different banks of the DataBuffer. Accessor methods are provided so that image data can be manipulated directly. This class can support different kinds of interleaving, e.g. band interleaving, scanline interleaving, and pixel interleaving. Pixel stride is the number of data array elements between two samples for the same band on the same scanline. Scanline stride is the number of data array elements between a given sample and the corresponding sample in the same column of the next scanline. Band offsets denote the number of data array elements from the first data array element of the bank of the DataBuffer holding each band to the first sample of the band. The bands are numbered from 0 to N-1. This class can represent image data for which each sample is an unsigned integral number which can be stored in 8, 16, or 32 bits (using DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, or DataBuffer.TYPE_INT, respectively), data for which each sample is a signed integral number which can be stored in 16 bits (using DataBuffer.TYPE_SHORT), or data for which each sample is a signed float or double quantity (using DataBuffer.TYPE_FLOAT or DataBuffer.TYPE_DOUBLE, respectively). All samples of a given ComponentSampleModel are stored with the same precision. All strides and offsets must be non-negative. This class supports TYPE_BYTE, TYPE_USHORT, TYPE_SHORT, TYPE_INT, TYPE_FLOAT, TYPE_DOUBLE,
See Also
java.awt.image.PixelInterleavedSampleModel, java.awt.image.BandedSampleModel

Field Summary

Modifier and TypeField and Description
protected int[]
bandOffsets

Offsets for all bands in data array elements.

protected int[]
bankIndices

Index for each bank storing a band of image data.

protected int
numBands

Hides java.awt.image.SampleModel.numBands.

The number of bands in this ComponentSampleModel.
protected int
numBanks

The number of banks in this ComponentSampleModel.

protected int
pixelStride

Pixel stride (in data array elements) of the region of image data described by this ComponentSampleModel.

protected int
scanlineStride

Line stride (in data array elements) of the region of image data described by this ComponentSampleModel.

Inherited from java.awt.image.SampleModel:
dataTypeheightwidth

Constructor Summary

AccessConstructor and Description
public
ComponentSampleModel(int
the data type for storing samples
dataType
,
int
the width (in pixels) of the region of image data described
w
,
int
the height (in pixels) of the region of image data described
h
,
int
the pixel stride of the region of image data described
pixelStride
,
int
the line stride of the region of image data described
scanlineStride
,
int[]
the offsets of all bands
bandOffsets
)

Constructs a ComponentSampleModel with the specified parameters.

public
ComponentSampleModel(int
the data type for storing samples
dataType
,
int
the width (in pixels) of the region of image data described
w
,
int
the height (in pixels) of the region of image data described
h
,
int
the pixel stride of the region of image data described
pixelStride
,
int
The line stride of the region of image data described
scanlineStride
,
int[]
the bank indices of all bands
bankIndices
,
int[]
the band offsets of all bands
bandOffsets
)

Constructs a ComponentSampleModel with the specified parameters.

Method Summary

Modifier and TypeMethod and Description
public SampleModel

Returns:

a new ComponentSampleModel with the specified size
createCompatibleSampleModel
(int
the width of the resulting SampleModel
w
,
int
the height of the resulting SampleModel
h
)

Implements abstract java.awt.image.SampleModel.createCompatibleSampleModel.

Creates a new ComponentSampleModel with the specified width and height.
public DataBuffer

Returns:

a DataBuffer whose data type, number of banks and size are consistent with this ComponentSampleModel.
createDataBuffer
()

Implements abstract java.awt.image.SampleModel.createDataBuffer.

Creates a DataBuffer that corresponds to this ComponentSampleModel.
public SampleModel

Returns:

a ComponentSampleModel created with a subset of bands from this ComponentSampleModel.
createSubsetSampleModel
(int[]
a subset of bands from this ComponentSampleModel
bands
)

Implements abstract java.awt.image.SampleModel.createSubsetSampleModel.

Creates a new ComponentSampleModel with a subset of the bands of this ComponentSampleModel.
public boolean
equals(Object
the reference object with which to compare.
o
)

Overrides java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.
public final int[]

Returns:

the band offsets for all bands.
getBandOffsets
()

Returns the band offset for all bands.

public final int[]

Returns:

the bank indices for all bands.
getBankIndices
()

Returns the bank indices for all bands.

private int
getBufferSize()

Returns the size of the data buffer (in data elements) needed for a data buffer that matches this ComponentSampleModel.

public Object

Returns:

the data of the specified pixel
getDataElements
(int
the X coordinate of the pixel location
x
,
int
the Y coordinate of the pixel location
y
,
Object
if non-null, a primitive array in which to return the pixel data
obj
,
DataBuffer
the DataBuffer containing the image data
data
)

Implements abstract java.awt.image.SampleModel.getDataElements.

Returns data for a single pixel in a primitive array of type TransferType.
public final int

Returns:

the number of data elements needed to transfer a pixel with the getDataElements and setDataElements methods.
getNumDataElements
()

Implements abstract java.awt.image.SampleModel.getNumDataElements.

Returns the number of data elements needed to transfer a pixel with the getDataElements(int, int, Object, DataBuffer) and setDataElements(int, int, Object, DataBuffer) methods.
public int

Returns:

the offset for the first band of the specified pixel.
getOffset
(int
the X location of the pixel
x
,
int
the Y location of the pixel
y
)

Gets the offset for the first band of pixel (x,y).

public int

Returns:

the offset for the specified band of the specified pixel.
getOffset
(int
the X location of the specified pixel
x
,
int
the Y location of the specified pixel
y
,
int
the specified band
b
)

Gets the offset for band b of pixel (x,y).

public int[]

Returns:

the samples of the specified pixel.
getPixel
(int
the X coordinate of the pixel location
x
,
int
the Y coordinate of the pixel location
y
,
int[]
If non-null, returns the samples in this array
iArray
,
DataBuffer
The DataBuffer containing the image data
data
)

Overrides java.awt.image.SampleModel.getPixel.

Returns all samples for the specified pixel in an int array, one sample per array element.
public int[]

Returns:

the samples of the pixels within the specified region.
getPixels
(int
The X coordinate of the upper left pixel location
x
,
int
The Y coordinate of the upper left pixel location
y
,
int
The width of the pixel rectangle
w
,
int
The height of the pixel rectangle
h
,
int[]
If non-null, returns the samples in this array
iArray
,
DataBuffer
The DataBuffer containing the image data
data
)

Overrides java.awt.image.SampleModel.getPixels.

Returns all samples for the specified rectangle of pixels in an int array, one sample per array element.
public final int

Returns:

the pixel stride of this ComponentSampleModel.
getPixelStride
()

Returns the pixel stride of this ComponentSampleModel.

public int

Returns:

the sample in a specified band for the specified pixel
getSample
(int
the X coordinate of the pixel location
x
,
int
the Y coordinate of the pixel location
y
,
int
the band to return
b
,
DataBuffer
the DataBuffer containing the image data
data
)

Implements abstract java.awt.image.SampleModel.getSample.

Returns as int the sample in a specified band for the pixel located at (x,y).
public double

Returns:

a double value representing the sample in the specified band for the specified pixel.
getSampleDouble
(int
The X coordinate of the pixel location
x
,
int
The Y coordinate of the pixel location
y
,
int
The band to return
b
,
DataBuffer
The DataBuffer containing the image data
data
)

Overrides java.awt.image.SampleModel.getSampleDouble.

Returns the sample in a specified band for a pixel located at (x,y) as a double.
public float

Returns:

a float value representing the sample in the specified band for the specified pixel.
getSampleFloat
(int
The X coordinate of the pixel location
x
,
int
The Y coordinate of the pixel location
y
,
int
The band to return
b
,
DataBuffer
The DataBuffer containing the image data
data
)

Overrides java.awt.image.SampleModel.getSampleFloat.

Returns the sample in a specified band for the pixel located at (x,y) as a float.
public int[]

Returns:

the samples in the specified band of the specified pixel
getSamples
(int
The X coordinate of the upper left pixel location
x
,
int
The Y coordinate of the upper left pixel location
y
,
int
the width of the pixel rectangle
w
,
int
the height of the pixel rectangle
h
,
int
the band to return
b
,
int[]
if non-null, returns the samples in this array
iArray
,
DataBuffer
the DataBuffer containing the image data
data
)

Overrides java.awt.image.SampleModel.getSamples.

Returns the samples in a specified band for the specified rectangle of pixels in an int array, one sample per data array element.
public final int[]

Returns:

an array containing the number of bits per sample for all bands, where each element in the array represents a band.
getSampleSize
()

Implements abstract java.awt.image.SampleModel.getSampleSize.

Returns the number of bits per sample for all bands.
public final int

Returns:

the number of bits per sample for the specified band.
getSampleSize
(int
the specified band
band
)

Implements abstract java.awt.image.SampleModel.getSampleSize.

Returns the number of bits per sample for the specified band.
public final int

Returns:

the scanline stride of this ComponentSampleModel.
getScanlineStride
()

Returns the scanline stride of this ComponentSampleModel.

public int
hashCode()

Overrides java.lang.Object.hashCode.

Returns a hash code value for this object.
pack-priv int[]
orderBands(int[] orig, int step)

Preserves band ordering with new step factor...

public void
setDataElements(int
the X coordinate of the pixel location
x
,
int
the Y coordinate of the pixel location
y
,
Object
a primitive array containing pixel data
obj
,
DataBuffer
the DataBuffer containing the image data
data
)

Implements abstract java.awt.image.SampleModel.setDataElements.

Sets the data for a single pixel in the specified DataBuffer from a primitive array of type TransferType.
public void
setPixel(int
The X coordinate of the pixel location
x
,
int
The Y coordinate of the pixel location
y
,
int[]
The input samples in an int array
iArray
,
DataBuffer
The DataBuffer containing the image data
data
)

Overrides java.awt.image.SampleModel.setPixel.

Sets a pixel in the DataBuffer using an int array of samples for input.
public void
setPixels(int
The X coordinate of the upper left pixel location
x
,
int
The Y coordinate of the upper left pixel location
y
,
int
The width of the pixel rectangle
w
,
int
The height of the pixel rectangle
h
,
int[]
The input samples in an int array
iArray
,
DataBuffer
The DataBuffer containing the image data
data
)

Overrides java.awt.image.SampleModel.setPixels.

Sets all samples for a rectangle of pixels from an int array containing one sample per array element.
public void
setSample(int
The X coordinate of the pixel location
x
,
int
The Y coordinate of the pixel location
y
,
int
the band to set
b
,
int
the input sample as an int
s
,
DataBuffer
the DataBuffer containing the image data
data
)

Implements abstract java.awt.image.SampleModel.setSample.

Sets a sample in the specified band for the pixel located at (x,y) in the DataBuffer using an int for input.
public void
setSample(int
The X coordinate of the pixel location
x
,
int
The Y coordinate of the pixel location
y
,
int
The band to set
b
,
float
The input sample as a float
s
,
DataBuffer
The DataBuffer containing the image data
data
)

Overrides java.awt.image.SampleModel.setSample.

Sets a sample in the specified band for the pixel located at (x,y) in the DataBuffer using a float for input.
public void
setSample(int
The X coordinate of the pixel location
x
,
int
The Y coordinate of the pixel location
y
,
int
The band to set
b
,
double
The input sample as a double
s
,
DataBuffer
The DataBuffer containing the image data
data
)

Overrides java.awt.image.SampleModel.setSample.

Sets a sample in the specified band for the pixel located at (x,y) in the DataBuffer using a double for input.
public void
setSamples(int
The X coordinate of the upper left pixel location
x
,
int
The Y coordinate of the upper left pixel location
y
,
int
The width of the pixel rectangle
w
,
int
The height of the pixel rectangle
h
,
int
The band to set
b
,
int[]
The input samples in an int array
iArray
,
DataBuffer
The DataBuffer containing the image data
data
)

Overrides java.awt.image.SampleModel.setSamples.

Sets the samples in the specified band for the specified rectangle of pixels from an int array containing one sample per data array element.
private void
Inherited from java.awt.image.SampleModel:
getDataElementsgetDataTypegetHeightgetNumBandsgetPixelgetPixelgetPixelsgetPixelsgetSamplesgetSamplesgetTransferTypegetWidthsetDataElementssetPixelsetPixelsetPixelssetPixelssetSamplessetSamples

Field Detail

bandOffsetsback to summary
protected int[] bandOffsets

Offsets for all bands in data array elements.

bankIndicesback to summary
protected int[] bankIndices

Index for each bank storing a band of image data.

numBandsback to summary
protected int numBands

Hides java.awt.image.SampleModel.numBands.

The number of bands in this ComponentSampleModel.

numBanksback to summary
protected int numBanks

The number of banks in this ComponentSampleModel.

pixelStrideback to summary
protected int pixelStride

Pixel stride (in data array elements) of the region of image data described by this ComponentSampleModel.

scanlineStrideback to summary
protected int scanlineStride

Line stride (in data array elements) of the region of image data described by this ComponentSampleModel.

Constructor Detail

ComponentSampleModelback to summary
public ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bandOffsets)

Constructs a ComponentSampleModel with the specified parameters. The number of bands will be given by the length of the bandOffsets array. All bands will be stored in the first bank of the DataBuffer.

Parameters
dataType:int

the data type for storing samples

w:int

the width (in pixels) of the region of image data described

h:int

the height (in pixels) of the region of image data described

pixelStride:int

the pixel stride of the region of image data described

scanlineStride:int

the line stride of the region of image data described

bandOffsets:int[]

the offsets of all bands

Exceptions
IllegalArgumentException:
  • if w and h are not both greater than 0
  • if the product of w and h is greater than Integer.MAX_VALUE
  • if pixelStride is less than 0
  • if scanlineStride is less than 0
  • if bandOffsets.length is 0
  • if dataType is not one of the supported data types for this sample model.
NullPointerException:
if bandOffsets is null
ComponentSampleModelback to summary
public ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bankIndices, int[] bandOffsets)

Constructs a ComponentSampleModel with the specified parameters. The number of bands will be given by the length of the bandOffsets array. Different bands may be stored in different banks of the DataBuffer.

Parameters
dataType:int

the data type for storing samples

w:int

the width (in pixels) of the region of image data described

h:int

the height (in pixels) of the region of image data described

pixelStride:int

the pixel stride of the region of image data described

scanlineStride:int

The line stride of the region of image data described

bankIndices:int[]

the bank indices of all bands

bandOffsets:int[]

the band offsets of all bands

Exceptions
IllegalArgumentException:
  • if w and h are not both greater than 0
  • if the product of w and h is greater than Integer.MAX_VALUE
  • if pixelStride is less than 0
  • if scanlineStride is less than 0
  • if bandOffsets.length is 0
  • if the length of bankIndices does not equal the length of bandOffsets
  • if any of the bank indices of bandIndices is less than 0
  • if dataType is not one of the supported data types for this sample model
NullPointerException:
  • if bankIndices is null
  • if bandOffsets is null

Method Detail

createCompatibleSampleModelback to summary
public SampleModel createCompatibleSampleModel(int w, int h)

Implements abstract java.awt.image.SampleModel.createCompatibleSampleModel.

Creates a new ComponentSampleModel with the specified width and height. The new SampleModel will have the same number of bands, storage data type, interleaving scheme, and pixel stride as this SampleModel.

Parameters
w:int

the width of the resulting SampleModel

h:int

the height of the resulting SampleModel

Returns:SampleModel

a new ComponentSampleModel with the specified size

Exceptions
IllegalArgumentException:
if w or h is not greater than 0
createDataBufferback to summary
public DataBuffer createDataBuffer()

Implements abstract java.awt.image.SampleModel.createDataBuffer.

Creates a DataBuffer that corresponds to this ComponentSampleModel. The DataBuffer object's data type, number of banks, and size are be consistent with this ComponentSampleModel.

Returns:DataBuffer

a DataBuffer whose data type, number of banks and size are consistent with this ComponentSampleModel.

createSubsetSampleModelback to summary
public SampleModel createSubsetSampleModel(int[] bands)

Implements abstract java.awt.image.SampleModel.createSubsetSampleModel.

Creates a new ComponentSampleModel with a subset of the bands of this ComponentSampleModel. The new ComponentSampleModel can be used with any DataBuffer that the existing ComponentSampleModel can be used with. The new ComponentSampleModel/DataBuffer combination will represent an image with a subset of the bands of the original ComponentSampleModel/DataBuffer combination.

Parameters
bands:int[]

a subset of bands from this ComponentSampleModel

Returns:SampleModel

a ComponentSampleModel created with a subset of bands from this ComponentSampleModel.

equalsback to summary
public boolean equals(Object o)

Overrides java.lang.Object.equals.

Doc from java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Parameters
o:Object

the reference object with which to compare.

Returns:boolean

true if this object is the same as the obj argument; false otherwise.

getBandOffsetsback to summary
public final int[] getBandOffsets()

Returns the band offset for all bands.

Returns:int[]

the band offsets for all bands.

getBankIndicesback to summary
public final int[] getBankIndices()

Returns the bank indices for all bands.

Returns:int[]

the bank indices for all bands.

getBufferSizeback to summary
private int getBufferSize()

Returns the size of the data buffer (in data elements) needed for a data buffer that matches this ComponentSampleModel.

getDataElementsback to summary
public Object getDataElements(int x, int y, Object obj, DataBuffer data)

Implements abstract java.awt.image.SampleModel.getDataElements.

Returns data for a single pixel in a primitive array of type TransferType. For a ComponentSampleModel, this is the same as the data type, and samples are returned one per array element. Generally, obj should be passed in as null, so that the Object is created automatically and is the right primitive data type.

The following code illustrates transferring data for one pixel from DataBuffer db1, whose storage layout is described by ComponentSampleModel csm1, to DataBuffer db2, whose storage layout is described by ComponentSampleModel csm2. The transfer is usually more efficient than using getPixel and setPixel.

      ComponentSampleModel csm1, csm2;
      DataBufferInt db1, db2;
      csm2.setDataElements(x, y,
                           csm1.getDataElements(x, y, null, db1), db2);
Using getDataElements and setDataElements to transfer between two DataBuffer/SampleModel pairs is legitimate if the SampleModel objects have the same number of bands, corresponding bands have the same number of bits per sample, and the TransferTypes are the same.

If obj is not null, it should be a primitive array of type TransferType. Otherwise, a ClassCastException is thrown. An ArrayIndexOutOfBoundsException might be thrown if the coordinates are not in bounds, or if obj is not null and is not large enough to hold the pixel data.

Parameters
x:int

the X coordinate of the pixel location

y:int

the Y coordinate of the pixel location

obj:Object

if non-null, a primitive array in which to return the pixel data

data:DataBuffer

the DataBuffer containing the image data

Returns:Object

the data of the specified pixel

Exceptions
NullPointerException:
if data is null.
ArrayIndexOutOfBoundsException:
if the coordinates are not in bounds, or if obj is too small to hold the output.
See Also
setDataElements(int, int, Object, DataBuffer)
getNumDataElementsback to summary
public final int getNumDataElements()

Implements abstract java.awt.image.SampleModel.getNumDataElements.

Returns the number of data elements needed to transfer a pixel with the getDataElements(int, int, Object, DataBuffer) and setDataElements(int, int, Object, DataBuffer) methods. For a ComponentSampleModel, this is identical to the number of bands.

Returns:int

the number of data elements needed to transfer a pixel with the getDataElements and setDataElements methods.

See Also
java.awt.image.SampleModel#getNumDataElements, getNumBands
getOffsetback to summary
public int getOffset(int x, int y)

Gets the offset for the first band of pixel (x,y). A sample of the first band can be retrieved from a DataBuffer data with a ComponentSampleModel csm as

       data.getElem(csm.getOffset(x, y));
Parameters
x:int

the X location of the pixel

y:int

the Y location of the pixel

Returns:int

the offset for the first band of the specified pixel.

getOffsetback to summary
public int getOffset(int x, int y, int b)

Gets the offset for band b of pixel (x,y). A sample of band b can be retrieved from a DataBuffer data with a ComponentSampleModel csm as

      data.getElem(csm.getOffset(x, y, b));
Parameters
x:int

the X location of the specified pixel

y:int

the Y location of the specified pixel

b:int

the specified band

Returns:int

the offset for the specified band of the specified pixel.

getPixelback to summary
public int[] getPixel(int x, int y, int[] iArray, DataBuffer data)

Overrides java.awt.image.SampleModel.getPixel.

Returns all samples for the specified pixel in an int array, one sample per array element. An ArrayIndexOutOfBoundsException might be thrown if the coordinates are not in bounds.

Parameters
x:int

the X coordinate of the pixel location

y:int

the Y coordinate of the pixel location

iArray:int[]

If non-null, returns the samples in this array

data:DataBuffer

The DataBuffer containing the image data

Returns:int[]

the samples of the specified pixel.

Exceptions
NullPointerException:
if data is null.
ArrayIndexOutOfBoundsException:
if the coordinates are not in bounds, or if iArray is too small to hold the output.
See Also
setPixel(int, int, int[], DataBuffer)
getPixelsback to summary
public int[] getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)

Overrides java.awt.image.SampleModel.getPixels.

Returns all samples for the specified rectangle of pixels in an int array, one sample per array element. An ArrayIndexOutOfBoundsException might be thrown if the coordinates are not in bounds.

Parameters
x:int

The X coordinate of the upper left pixel location

y:int

The Y coordinate of the upper left pixel location

w:int

The width of the pixel rectangle

h:int

The height of the pixel rectangle

iArray:int[]

If non-null, returns the samples in this array

data:DataBuffer

The DataBuffer containing the image data

Returns:int[]

the samples of the pixels within the specified region.

See Also
setPixels(int, int, int, int, int[], DataBuffer)
getPixelStrideback to summary
public final int getPixelStride()

Returns the pixel stride of this ComponentSampleModel.

Returns:int

the pixel stride of this ComponentSampleModel.

getSampleback to summary
public int getSample(int x, int y, int b, DataBuffer data)

Implements abstract java.awt.image.SampleModel.getSample.

Returns as int the sample in a specified band for the pixel located at (x,y). An ArrayIndexOutOfBoundsException might be thrown if the coordinates are not in bounds.

Parameters
x:int

the X coordinate of the pixel location

y:int

the Y coordinate of the pixel location

b:int

the band to return

data:DataBuffer

the DataBuffer containing the image data

Returns:int

the sample in a specified band for the specified pixel

See Also
setSample(int, int, int, int, DataBuffer)
getSampleDoubleback to summary
public double getSampleDouble(int x, int y, int b, DataBuffer data)

Overrides java.awt.image.SampleModel.getSampleDouble.

Returns the sample in a specified band for a pixel located at (x,y) as a double. An ArrayIndexOutOfBoundsException might be thrown if the coordinates are not in bounds.

Parameters
x:int

The X coordinate of the pixel location

y:int

The Y coordinate of the pixel location

b:int

The band to return

data:DataBuffer

The DataBuffer containing the image data

Returns:double

a double value representing the sample in the specified band for the specified pixel.

getSampleFloatback to summary
public float getSampleFloat(int x, int y, int b, DataBuffer data)

Overrides java.awt.image.SampleModel.getSampleFloat.

Returns the sample in a specified band for the pixel located at (x,y) as a float. An ArrayIndexOutOfBoundsException might be thrown if the coordinates are not in bounds.

Parameters
x:int

The X coordinate of the pixel location

y:int

The Y coordinate of the pixel location

b:int

The band to return

data:DataBuffer

The DataBuffer containing the image data

Returns:float

a float value representing the sample in the specified band for the specified pixel.

getSamplesback to summary
public int[] getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)

Overrides java.awt.image.SampleModel.getSamples.

Returns the samples in a specified band for the specified rectangle of pixels in an int array, one sample per data array element. An ArrayIndexOutOfBoundsException might be thrown if the coordinates are not in bounds.

Parameters
x:int

The X coordinate of the upper left pixel location

y:int

The Y coordinate of the upper left pixel location

w:int

the width of the pixel rectangle

h:int

the height of the pixel rectangle

b:int

the band to return

iArray:int[]

if non-null, returns the samples in this array

data:DataBuffer

the DataBuffer containing the image data

Returns:int[]

the samples in the specified band of the specified pixel

See Also
setSamples(int, int, int, int, int, int[], DataBuffer)
getSampleSizeback to summary
public final int[] getSampleSize()

Implements abstract java.awt.image.SampleModel.getSampleSize.

Returns the number of bits per sample for all bands.

Returns:int[]

an array containing the number of bits per sample for all bands, where each element in the array represents a band.

getSampleSizeback to summary
public final int getSampleSize(int band)

Implements abstract java.awt.image.SampleModel.getSampleSize.

Returns the number of bits per sample for the specified band.

Parameters
band:int

the specified band

Returns:int

the number of bits per sample for the specified band.

getScanlineStrideback to summary
public final int getScanlineStride()

Returns the scanline stride of this ComponentSampleModel.

Returns:int

the scanline stride of this ComponentSampleModel.

hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Doc from java.lang.Object.hashCode.

Returns a hash code value for this object. This method is supported for the benefit of hash tables such as those provided by java.util.HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
Returns:int

a hash code value for this object

orderBandsback to summary
pack-priv int[] orderBands(int[] orig, int step)

Preserves band ordering with new step factor...

setDataElementsback to summary
public void setDataElements(int x, int y, Object obj, DataBuffer data)

Implements abstract java.awt.image.SampleModel.setDataElements.

Sets the data for a single pixel in the specified DataBuffer from a primitive array of type TransferType. For a ComponentSampleModel, this is the same as the data type, and samples are transferred one per array element.

The following code illustrates transferring data for one pixel from DataBuffer db1, whose storage layout is described by ComponentSampleModel csm1, to DataBuffer db2, whose storage layout is described by ComponentSampleModel csm2. The transfer is usually more efficient than using getPixel and setPixel.

      ComponentSampleModel csm1, csm2;
      DataBufferInt db1, db2;
      csm2.setDataElements(x, y, csm1.getDataElements(x, y, null, db1),
                           db2);
Using getDataElements and setDataElements to transfer between two DataBuffer/SampleModel pairs is legitimate if the SampleModel objects have the same number of bands, corresponding bands have the same number of bits per sample, and the TransferTypes are the same.

A ClassCastException is thrown if obj is not a primitive array of type TransferType. An ArrayIndexOutOfBoundsException might be thrown if the coordinates are not in bounds, or if obj is not large enough to hold the pixel data.

Parameters
x:int

the X coordinate of the pixel location

y:int

the Y coordinate of the pixel location

obj:Object

a primitive array containing pixel data

data:DataBuffer

the DataBuffer containing the image data

See Also
getDataElements(int, int, Object, DataBuffer)
setPixelback to summary
public void setPixel(int x, int y, int[] iArray, DataBuffer data)

Overrides java.awt.image.SampleModel.setPixel.

Sets a pixel in the DataBuffer using an int array of samples for input. An ArrayIndexOutOfBoundsException might be thrown if the coordinates are not in bounds.

Parameters
x:int

The X coordinate of the pixel location

y:int

The Y coordinate of the pixel location

iArray:int[]

The input samples in an int array

data:DataBuffer

The DataBuffer containing the image data

See Also
getPixel(int, int, int[], DataBuffer)
setPixelsback to summary
public void setPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)

Overrides java.awt.image.SampleModel.setPixels.

Sets all samples for a rectangle of pixels from an int array containing one sample per array element. An ArrayIndexOutOfBoundsException might be thrown if the coordinates are not in bounds.

Parameters
x:int

The X coordinate of the upper left pixel location

y:int

The Y coordinate of the upper left pixel location

w:int

The width of the pixel rectangle

h:int

The height of the pixel rectangle

iArray:int[]

The input samples in an int array

data:DataBuffer

The DataBuffer containing the image data

See Also
getPixels(int, int, int, int, int[], DataBuffer)
setSampleback to summary
public void setSample(int x, int y, int b, int s, DataBuffer data)

Implements abstract java.awt.image.SampleModel.setSample.

Sets a sample in the specified band for the pixel located at (x,y) in the DataBuffer using an int for input. An ArrayIndexOutOfBoundsException might be thrown if the coordinates are not in bounds.

Parameters
x:int

The X coordinate of the pixel location

y:int

The Y coordinate of the pixel location

b:int

the band to set

s:int

the input sample as an int

data:DataBuffer

the DataBuffer containing the image data

See Also
getSample(int, int, int, DataBuffer)
setSampleback to summary
public void setSample(int x, int y, int b, float s, DataBuffer data)

Overrides java.awt.image.SampleModel.setSample.

Sets a sample in the specified band for the pixel located at (x,y) in the DataBuffer using a float for input. An ArrayIndexOutOfBoundsException might be thrown if the coordinates are not in bounds.

Parameters
x:int

The X coordinate of the pixel location

y:int

The Y coordinate of the pixel location

b:int

The band to set

s:float

The input sample as a float

data:DataBuffer

The DataBuffer containing the image data

See Also
getSample(int, int, int, DataBuffer)
setSampleback to summary
public void setSample(int x, int y, int b, double s, DataBuffer data)

Overrides java.awt.image.SampleModel.setSample.

Sets a sample in the specified band for the pixel located at (x,y) in the DataBuffer using a double for input. An ArrayIndexOutOfBoundsException might be thrown if the coordinates are not in bounds.

Parameters
x:int

The X coordinate of the pixel location

y:int

The Y coordinate of the pixel location

b:int

The band to set

s:double

The input sample as a double

data:DataBuffer

The DataBuffer containing the image data

See Also
getSample(int, int, int, DataBuffer)
setSamplesback to summary
public void setSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)

Overrides java.awt.image.SampleModel.setSamples.

Sets the samples in the specified band for the specified rectangle of pixels from an int array containing one sample per data array element. An ArrayIndexOutOfBoundsException might be thrown if the coordinates are not in bounds.

Parameters
x:int

The X coordinate of the upper left pixel location

y:int

The Y coordinate of the upper left pixel location

w:int

The width of the pixel rectangle

h:int

The height of the pixel rectangle

b:int

The band to set

iArray:int[]

The input samples in an int array

data:DataBuffer

The DataBuffer containing the image data

See Also
getSamples(int, int, int, int, int, int[], DataBuffer)
verifyback to summary
private void verify()