java.awt.image

Class SinglePixelPackedSampleModel

public class SinglePixelPackedSampleModel extends SampleModel

A SampleModel used when all samples are stored in a single data element in the {@link DataBuffer}, and each data element contains samples for one pixel only.
Constructor Summary
SinglePixelPackedSampleModel(int dataType, int w, int h, int[] bitMasks)
Creates a new SinglePixelPackedSampleModel.
SinglePixelPackedSampleModel(int dataType, int w, int h, int scanlineStride, int[] bitMasks)
Creates a new SinglePixelPackedSampleModel.
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 DataBuffer for holding pixel data in the format and layout described by this SampleModel.
SampleModelcreateSubsetSampleModel(int[] bands)
Creates a new SinglePixelPackedSampleModel that accesses the specified subset of bands.
booleanequals(Object obj)
Tests this sample model for equality with an arbitrary object.
int[]getBitMasks()
int[]getBitOffsets()
ObjectgetDataElements(int x, int y, Object obj, DataBuffer data)
intgetNumDataElements()
Returns the number of data elements.
intgetOffset(int x, int y)
Returns the index in the data buffer that stores the pixel at (x, y).
int[]getPixel(int x, int y, int[] iArray, DataBuffer data)
Returns an array containing the samples for the pixel at (x, y) in the specified data buffer.
int[]getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
Returns an array containing the samples for the pixels in the region specified by (x, y, w, h) in the specified data buffer.
intgetSample(int x, int y, int b, DataBuffer data)
Returns the sample value for the pixel at (x, y) in the specified data buffer.
int[]getSampleSize()
Returns an array containing the size (in bits) for each band accessed by the SampleModel.
intgetSampleSize(int band)
Returns the size (in bits) of the samples for the specified band.
intgetScanlineStride()
Returns the number of data elements from a pixel in one row to the corresponding pixel in the next row.
inthashCode()
Returns a hash code for this SinglePixelPackedSampleModel.
voidsetDataElements(int x, int y, Object obj, DataBuffer data)
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)
This method implements a more efficient way to set pixels than the default implementation of the super class.
voidsetSample(int x, int y, int b, int s, DataBuffer data)
Sets the sample value for a band for the pixel at (x, y) in the specified data buffer.
StringtoString()
Creates a String with some information about this SampleModel.

Constructor Detail

SinglePixelPackedSampleModel

public SinglePixelPackedSampleModel(int dataType, int w, int h, int[] bitMasks)
Creates a new SinglePixelPackedSampleModel.

Parameters: dataType the data buffer type. w the width (in pixels). h the height (in pixels). bitMasks an array containing the bit mask used to extract the sample value for each band.

SinglePixelPackedSampleModel

public SinglePixelPackedSampleModel(int dataType, int w, int h, int scanlineStride, int[] bitMasks)
Creates a new SinglePixelPackedSampleModel.

Parameters: dataType the data buffer type. w the width (in pixels). h the height (in pixels). scanlineStride the number of data elements between a pixel on one row and the corresponding pixel on the next row. bitMasks an array containing the bit mask used to extract the sample value for each band.

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). h the height (in pixels).

Returns: The new sample model.

createDataBuffer

public DataBuffer createDataBuffer()
Creates a DataBuffer for holding pixel data in the format and layout described by this SampleModel. The returned buffer will consist of one single bank.

Returns: The data buffer.

createSubsetSampleModel

public SampleModel createSubsetSampleModel(int[] bands)
Creates a new SinglePixelPackedSampleModel that accesses the specified subset of bands.

Parameters: bands an array containing band indices (null not permitted).

Returns: A new sample model.

Throws: NullPointerException if bands is null. RasterFormatException if bands.length is greater than the number of bands in this model.

equals

public boolean equals(Object obj)
Tests this sample model for equality with an arbitrary object. This method returns true if and only if:

Parameters: obj the object (null permitted)

Returns: true if this model is equal to obj, and false otherwise.

getBitMasks

public int[] getBitMasks()

getBitOffsets

public int[] getBitOffsets()

getDataElements

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

getNumDataElements

public int getNumDataElements()
Returns the number of data elements.

Returns: 1.

getOffset

public int getOffset(int x, int y)
Returns the index in the data buffer that stores the pixel at (x, y).

Parameters: x the x-coordinate. y the y-coordinate.

Returns: The index in the data buffer that stores the pixel at (x, y).

getPixel

public int[] getPixel(int x, int y, int[] iArray, DataBuffer data)
Returns an array containing the samples for the pixel at (x, y) in the specified data buffer. If iArray is not null, it will be populated with the sample values and returned as the result of this function (this avoids allocating a new array instance).

Parameters: x the x-coordinate of the pixel. y the y-coordinate of the pixel. iArray an array to populate with the sample values and return as the result (if null, a new array will be allocated). data the data buffer (null not permitted).

Returns: The pixel sample values.

Throws: NullPointerException if data is null.

getPixels

public int[] getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
Returns an array containing the samples 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). If iArray is not null, it will be populated with the sample values and returned as the result of this function (this avoids allocating a new array instance).

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 an array to populate with the sample values and return as the result (if null, a new array will be allocated). data the data buffer (null not permitted).

Returns: The pixel sample values.

Throws: NullPointerException if data is null.

getSample

public int getSample(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.

getSampleSize

public int[] getSampleSize()
Returns an array containing the size (in bits) for each band accessed by the SampleModel.

Returns: An array.

See Also: SinglePixelPackedSampleModel

getSampleSize

public int getSampleSize(int band)
Returns the size (in bits) of the samples for the specified band.

Parameters: band the band (in the range 0 to getNumBands() - 1).

Returns: The sample size (in bits).

getScanlineStride

public int getScanlineStride()
Returns the number of data elements from a pixel in one row to the corresponding pixel in the next row.

Returns: The scanline stride.

hashCode

public int hashCode()
Returns a hash code for this SinglePixelPackedSampleModel.

Returns: A hash code.

setDataElements

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

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)
This method implements a more efficient way to set pixels than the default implementation of the super class. It copies the pixel components directly from the input array instead of creating a intermediate buffer.

Parameters: x The x-coordinate of the pixel rectangle in obj. y The y-coordinate of the pixel rectangle in obj. w The width of the pixel rectangle in obj. h The height of the pixel rectangle in obj. iArray The primitive array containing the pixels to set. data The DataBuffer to store the pixels into.

See Also: (int, int, int, int, int[], java.awt.image.DataBuffer)

setSample

public void setSample(int x, int y, int b, int 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.

toString

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

Returns: A String describing this SampleModel.

See Also: toString