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

Field Summary

Fields inherited from class java.awt.image.ComponentSampleModel

bandOffsets, bankIndices, numBands, numBanks, pixelStride, scanlineStride

Fields inherited from class java.awt.image.SampleModel

dataType, height, numBands, width

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

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 new data buffer that is compatible with this sample model.
SampleModel
createSubsetSampleModel(int[] bands)
Object
getDataElements(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.
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.
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.
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.
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.
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.
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)
Sets the sample values for the pixels in the region specified by (x, y, w, h) in the specified data buffer.
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.
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.
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.
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.
String
toString()
Creates a String with some information about this SampleModel.

Methods inherited from class java.awt.image.ComponentSampleModel

createCompatibleSampleModel, createDataBuffer, createSubsetSampleModel, equals, getBandOffsets, getBankIndices, getDataElements, getNumDataElements, getOffset, getOffset, getPixel, getPixelStride, getPixels, getSample, getSampleSize, getSampleSize, getScanlineStride, hashCode, setDataElements, setPixel, setSample

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

Constructor Details

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 Details

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.
Overrides:
createCompatibleSampleModel in interface ComponentSampleModel
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.
Overrides:
createDataBuffer in interface ComponentSampleModel
Returns:
The new data buffer.

createSubsetSampleModel

public SampleModel createSubsetSampleModel(int[] bands)
Overrides:
createSubsetSampleModel in interface ComponentSampleModel

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.
Overrides:
getDataElements in interface ComponentSampleModel
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.

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.
Overrides:
getPixel in interface ComponentSampleModel
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.

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.
Overrides:
getPixels in interface ComponentSampleModel
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.
Overrides:
getSample in interface ComponentSampleModel
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.
Overrides:
getSampleDouble in interface 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.

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.
Overrides:
getSampleFloat in interface 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.

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.
Overrides:
getSamples in interface SampleModel
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.
Overrides:
setDataElements in interface ComponentSampleModel
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.

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 interface ComponentSampleModel
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).
Overrides:
setPixels in interface 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 - 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,
                      double s,
                      DataBuffer data)
Sets the sample value for a band for the pixel at (x, y) in the specified data buffer.
Overrides:
setSample in interface 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.

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.
Overrides:
setSample in interface 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.

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.
Overrides:
setSample in interface ComponentSampleModel
Parameters:
x - the x-coordinate.
y - the y-coordinate.
b - the band index.
s - the sample value.
data - the data buffer (null not permitted).

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.
Overrides:
setSamples in interface 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.
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.
Overrides:
toString in interface Object
Returns:
A String describing this SampleModel.

Copyright (C) 2004, 2005, 2006, Free Software Foundation This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.