java.awt.image

Class BandedSampleModel

public final class BandedSampleModel extends ComponentSampleModel

A sample model that reads each sample value from a separate band in the {@link DataBuffer}.
Constructor Summary
BandedSampleModel(int dataType, int w, int h, int numBands)
Creates a new BandedSampleModel.
BandedSampleModel(int dataType, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets)
Creates a new BandedSampleModel.
Method Summary
SampleModelcreateCompatibleSampleModel(int w, int h)
Creates a new SampleModel that is compatible with this model and has the specified width and height.
DataBuffercreateDataBuffer()
Creates a new data buffer that is compatible with this sample model.
SampleModelcreateSubsetSampleModel(int[] bands)
ObjectgetDataElements(int x, int y, Object obj, DataBuffer data)
Extract all samples of one pixel and return in an array of transfer type.
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.
int[]getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
Copy pixels from a region into an array.
intgetSample(int x, int y, int b, DataBuffer data)
Returns a sample value for the pixel at (x, y) in the specified data buffer.
doublegetSampleDouble(int x, int y, int b, DataBuffer data)
Returns the sample value for the pixel at (x, y) in the specified data buffer.
floatgetSampleFloat(int x, int y, int b, DataBuffer data)
Returns a sample value for the pixel at (x, y) in the specified data buffer.
int[]getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
Copy one band's samples from a region into an array.
voidsetDataElements(int x, int y, Object obj, DataBuffer data)
Set the pixel at x, y to the value in the first element of the primitive array obj.
voidsetPixel(int x, int y, int[] iArray, DataBuffer data)
Sets the samples for the pixel at (x, y) in the specified data buffer to the specified values.
voidsetPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
Sets the sample values for the pixels in the region specified by (x, y, w, h) in the specified data buffer.
voidsetSample(int x, int y, int b, int s, DataBuffer data)
Sets the sample value for band b of the pixel at location (x, y) in the specified data buffer.
voidsetSample(int x, int y, int b, float s, DataBuffer data)
Sets the sample value for a band for the pixel at (x, y) in the specified data buffer.
voidsetSample(int x, int y, int b, double s, DataBuffer data)
Sets the sample value for a band for the pixel at (x, y) in the specified data buffer.
voidsetSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
Sets the sample values for one band for the pixels in the region specified by (x, y, w, h) in the specified data buffer.
StringtoString()
Creates a String with some information about this SampleModel.

Constructor Detail

BandedSampleModel

public BandedSampleModel(int dataType, int w, int h, int numBands)
Creates a new BandedSampleModel.

Parameters: dataType the data buffer type. w the width (in pixels). h the height (in pixels). numBands the number of bands.

BandedSampleModel

public BandedSampleModel(int dataType, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets)
Creates a new BandedSampleModel.

Parameters: dataType the data buffer type. w the width (in pixels). h the height (in pixels). scanlineStride the number of data elements from a pixel in one row to the corresponding pixel in the next row. bankIndices the bank indices. bandOffsets the band offsets.

Method Detail

createCompatibleSampleModel

public SampleModel createCompatibleSampleModel(int w, int h)
Creates a new SampleModel that is compatible with this model and has the specified width and height.

Parameters: w the width (in pixels, must be greater than zero). h the height (in pixels, must be greater than zero).

Returns: The new sample model.

Throws: IllegalArgumentException if w or h is not greater than zero. IllegalArgumentException if w * h exceeds Integer.MAX_VALUE.

createDataBuffer

public DataBuffer createDataBuffer()
Creates a new data buffer that is compatible with this sample model.

Returns: The new data buffer.

createSubsetSampleModel

public SampleModel createSubsetSampleModel(int[] bands)

getDataElements

public Object getDataElements(int x, int y, Object obj, DataBuffer data)
Extract all samples of one pixel and return in an array of transfer type. Extracts the pixel at x, y from data and stores samples into the array obj. If obj is null, a new array of getTransferType() is created.

Parameters: x The x-coordinate of the pixel rectangle to store in obj. y The y-coordinate of the pixel rectangle to store in obj. obj The primitive array to store the pixels into or null to force creation. data The DataBuffer that is the source of the pixel data.

Returns: The primitive array containing the pixel data.

See Also: SampleModel

getPixel

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.

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 is null, a new array is created. data the data buffer (null not permitted).

Returns: The samples for the specified pixel.

See Also: (int, int, int[], DataBuffer)

getPixels

public int[] getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
Copy pixels from a region into an array. Copies the samples of the pixels in the rectangle starting at x, y that is w pixels wide and h scanlines high. When there is more than one band, the samples stored in order before the next pixel. This ordering isn't well specified in Sun's docs as of 1.4.2. If iArray is null, a new array is allocated, filled, and returned.

Parameters: x The x-coordinate of the pixel rectangle to store in iArray. y The y-coordinate of the pixel rectangle to store in iArray. w The width in pixels of the rectangle. h The height in pixels of the rectangle. iArray The int array to store the pixels into or null to force creation. data The DataBuffer that is the source of the pixel data.

Returns: The primitive array containing the pixel data.

getSample

public int getSample(int x, int y, int b, DataBuffer data)
Returns a sample value for the pixel at (x, y) in the specified data buffer.

Parameters: x the x-coordinate of the pixel. y the y-coordinate of the pixel. b the band (in the range 0 to getNumBands() - 1). data the data buffer (null not permitted).

Returns: The sample value.

Throws: NullPointerException if data is null.

getSampleDouble

public double getSampleDouble(int x, int y, int b, DataBuffer data)
Returns the sample value for the pixel at (x, y) in the specified data buffer.

Parameters: x the x-coordinate of the pixel. y the y-coordinate of the pixel. b the band (in the range 0 to getNumBands() - 1). data the data buffer (null not permitted).

Returns: The sample value.

Throws: NullPointerException if data is null.

See Also: BandedSampleModel

getSampleFloat

public float getSampleFloat(int x, int y, int b, DataBuffer data)
Returns a sample value for the pixel at (x, y) in the specified data buffer.

Parameters: x the x-coordinate of the pixel. y the y-coordinate of the pixel. b the band (in the range 0 to getNumBands() - 1). data the data buffer (null not permitted).

Returns: The sample value.

Throws: NullPointerException if data is null.

See Also: BandedSampleModel

getSamples

public int[] getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
Copy one band's samples from a region into an array. Copies from one band the samples of the pixels in the rectangle starting at x, y that is w pixels wide and h scanlines high. If iArray is null, a new array is allocated, filled, and returned.

Parameters: x The x-coordinate of the pixel rectangle to store in iArray. y The y-coordinate of the pixel rectangle to store in iArray. w The width in pixels of the rectangle. h The height in pixels of the rectangle. b The band to retrieve. iArray The int array to store the pixels into or null to force creation. data The DataBuffer that is the source of the pixel data.

Returns: The primitive array containing the pixel data.

setDataElements

public void setDataElements(int x, int y, Object obj, DataBuffer data)
Set the pixel at x, y to the value in the first element of the primitive array obj.

Parameters: x The x-coordinate of the data elements in obj. y The y-coordinate of the data elements in obj. obj The primitive array containing the data elements to set. data The DataBuffer to store the data elements into.

See Also: SampleModel

setPixel

public void setPixel(int x, int y, int[] iArray, DataBuffer data)
Sets the samples for the pixel at (x, y) in the specified data buffer to the specified values.

Parameters: x the x-coordinate of the pixel. y the y-coordinate of the pixel. iArray the sample values (null not permitted). data the data buffer (null not permitted).

Throws: NullPointerException if either iArray or data is null.

setPixels

public void setPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
Sets the sample values for the pixels in the region specified by (x, y, w, h) in the specified data buffer. The array is ordered by pixels (that is, all the samples for the first pixel are grouped together, followed by all the samples for the second pixel, and so on).

Parameters: x the x-coordinate of the top-left pixel. y the y-coordinate of the top-left pixel. w the width of the region of pixels. h the height of the region of pixels. iArray the pixel sample values (null not permitted). data the data buffer (null not permitted).

Throws: NullPointerException if either iArray or data is null.

setSample

public void setSample(int x, int y, int b, int s, DataBuffer data)
Sets the sample value for band b of the pixel at location (x, y) in the specified data buffer.

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: BandedSampleModel

setSample

public void setSample(int x, int y, int b, float s, DataBuffer data)
Sets the sample value for a band for the pixel at (x, y) in the specified data buffer.

Parameters: x the x-coordinate of the pixel. y the y-coordinate of the pixel. b the band (in the range 0 to getNumBands() - 1). s the sample value. data the data buffer (null not permitted).

Throws: NullPointerException if data is null.

setSample

public void setSample(int x, int y, int b, double s, DataBuffer data)
Sets the sample value for a band for the pixel at (x, y) in the specified data buffer.

Parameters: x the x-coordinate of the pixel. y the y-coordinate of the pixel. b the band (in the range 0 to getNumBands() - 1). s the sample value. data the data buffer (null not permitted).

Throws: NullPointerException if data is null.

setSamples

public void setSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
Sets the sample values for one band for the pixels in the region specified by (x, y, w, h) in the specified data buffer.

Parameters: x the x-coordinate of the top-left pixel. y the y-coordinate of the top-left pixel. w the width of the region of pixels. h the height of the region of pixels. b the band (in the range 0 to getNumBands() - 1). iArray the sample values (null not permitted). data the data buffer (null not permitted).

Throws: NullPointerException if either iArray or data is null.

toString

public String toString()
Creates a String with some information about this SampleModel.

Returns: A String describing this SampleModel.

See Also: toString