java.awt.image
Class SinglePixelPackedSampleModel

java.lang.Object
  extended by java.awt.image.SampleModel
      extended by java.awt.image.SinglePixelPackedSampleModel

public class SinglePixelPackedSampleModel
extends SampleModel

A SampleModel used when all samples are stored in a single data element in the DataBuffer, and each data element contains samples for one pixel only.


Field Summary
 
Fields inherited from class java.awt.image.SampleModel
dataType, height, numBands, width
 
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
 SampleModel createCompatibleSampleModel(int w, int h)
          Creates a new SampleModel that is compatible with this model and has the specified width and height.
 DataBuffer createDataBuffer()
          Creates a DataBuffer for holding pixel data in the format and layout described by this SampleModel.
 SampleModel createSubsetSampleModel(int[] bands)
          Creates a new SinglePixelPackedSampleModel that accesses the specified subset of bands.
 boolean equals(Object obj)
          Tests this sample model for equality with an arbitrary object.
 int[] getBitMasks()
           
 int[] getBitOffsets()
           
 Object getDataElements(int x, int y, Object obj, DataBuffer data)
          This method is provided as a faster alternative to getPixel(), that can be used when there is no need to decode the pixel into separate sample values.
 int getNumDataElements()
          Returns the number of data elements.
 int getOffset(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.
 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.
 int[] getSampleSize()
          Returns an array containing the size (in bits) for each band accessed by the SampleModel.
 int getSampleSize(int band)
          Returns the size (in bits) of the samples for the specified band.
 int getScanlineStride()
          Returns the number of data elements from a pixel in one row to the corresponding pixel in the next row.
 int hashCode()
          Returns a hash code for this SinglePixelPackedSampleModel.
 void setDataElements(int x, int y, Object obj, DataBuffer data)
           
 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.
 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.
 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.
 String toString()
          Creates a String with some information about this SampleModel.
 
Methods inherited from class java.awt.image.SampleModel
getDataElements, getDataType, getHeight, getNumBands, getPixel, getPixel, getPixels, getPixels, getSampleDouble, getSampleFloat, getSamples, getSamples, getSamples, getTransferType, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setSample, setSample, setSamples, setSamples, setSamples
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

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

getNumDataElements

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

Specified by:
getNumDataElements in class SampleModel
Returns:
1.

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.

Specified by:
createCompatibleSampleModel in class SampleModel
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.

Specified by:
createDataBuffer in class SampleModel
Returns:
The data buffer.

getSampleSize

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

Specified by:
getSampleSize in class SampleModel
Returns:
An array.
See Also:
getSampleSize(int)

getSampleSize

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

Specified by:
getSampleSize in class SampleModel
Parameters:
band - the band (in the range 0 to getNumBands() - 1).
Returns:
The sample size (in bits).

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).

getBitOffsets

public int[] getBitOffsets()

getBitMasks

public int[] getBitMasks()

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.

createSubsetSampleModel

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

Specified by:
createSubsetSampleModel in class SampleModel
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.

getDataElements

public Object getDataElements(int x,
                              int y,
                              Object obj,
                              DataBuffer data)
Description copied from class: SampleModel
This method is provided as a faster alternative to getPixel(), that can be used when there is no need to decode the pixel into separate sample values.

Specified by:
getDataElements in class SampleModel
obj - An array to return the pixel data in. If null, an array of the right type and size will be created.
Returns:
A single pixel as an array object of a primitive type, based on the transfer type. Eg. if transfer type is DataBuffer.TYPE_USHORT, then a short[] object is returned.

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).

Overrides:
getPixel in class SampleModel
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).

Overrides:
getPixels in class SampleModel
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.

Specified by:
getSample in class SampleModel
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.

setDataElements

public void setDataElements(int x,
                            int y,
                            Object obj,
                            DataBuffer data)
Specified by:
setDataElements in class 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.

Overrides:
setPixel in class SampleModel
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.

Overrides:
setPixels in class SampleModel
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:
SampleModel.setPixels(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.

Specified by:
setSample in class SampleModel
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.

equals

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

Overrides:
equals in class Object
Parameters:
obj - the object (null permitted)
Returns:
true if this model is equal to obj, and false otherwise.
See Also:
Object.hashCode()

hashCode

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

Overrides:
hashCode in class Object
Returns:
A hash code.
See Also:
Object.equals(Object), System.identityHashCode(Object)

toString

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

Overrides:
toString in class Object
Returns:
A String describing this SampleModel.
See Also:
Object.toString()