java.awt.image

Class Raster

Known Direct Subclasses:
WritableRaster

public class Raster
extends Object

A rectangular collection of pixels composed from a DataBuffer which stores the pixel values, and a SampleModel which is used to retrieve the pixel values.

Field Summary

protected DataBuffer
dataBuffer
The data buffer used to store the pixel values.
protected int
height
The height of the raster.
protected int
minX
The x-coordinate of the top left corner of the raster.
protected int
minY
The y-coordinate of the top left corner of the raster.
protected int
numBands
The number of bands.
protected int
numDataElements
protected Raster
parent
The raster's parent.
protected SampleModel
sampleModel
The sample model used to access the pixel values.
protected int
sampleModelTranslateX
protected int
sampleModelTranslateY
protected int
width
The width of the raster.

Constructor Summary

Raster(SampleModel sampleModel, Point origin)
Creates a new raster.
Raster(SampleModel sampleModel, DataBuffer dataBuffer, Point origin)
Creates a new raster.
Raster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point sampleModelTranslate, Raster parent)
Creates a new raster.

Method Summary

static WritableRaster
createBandedRaster(int dataType, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets, Point location)
Creates a new banded raster.
static WritableRaster
createBandedRaster(int dataType, int w, int h, int bands, Point location)
Creates a new banded raster.
static WritableRaster
createBandedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets, Point location)
Creates a new banded raster.
Raster
createChild(int parentX, int parentY, int width, int height, int childMinX, int childMinY, int[] bandList)
WritableRaster
createCompatibleWritableRaster()
Creates a new writable raster that is compatible with this raster.
WritableRaster
createCompatibleWritableRaster(int w, int h)
Creates a new writable raster that is compatible with this raster.
WritableRaster
createCompatibleWritableRaster(int x, int y, int w, int h)
Creates a new writable raster that is compatible with this raster, with the specified bounds.
WritableRaster
createCompatibleWritableRaster(Rectangle rect)
Creates a new writable raster that is compatible with this raster, with the specified bounds.
static WritableRaster
createInterleavedRaster(int dataType, int w, int h, int scanlineStride, int pixelStride, int[] bandOffsets, Point location)
Creates an interleaved raster.
static WritableRaster
createInterleavedRaster(int dataType, int w, int h, int bands, Point location)
Creates an interleaved raster using the specified data type.
static WritableRaster
createInterleavedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int pixelStride, int[] bandOffsets, Point location)
Creates a new interleaved raster.
static WritableRaster
createPackedRaster(int dataType, int w, int h, int bands, int bitsPerBand, Point location)
Creates a new raster.
static WritableRaster
createPackedRaster(int dataType, int w, int h, int[] bandMasks, Point location)
Creates a new packed raster.
static WritableRaster
createPackedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int[] bandMasks, Point location)
Creates a new packed raster.
static WritableRaster
createPackedRaster(DataBuffer dataBuffer, int w, int h, int bitsPerPixel, Point location)
Creates a new packed raster.
static Raster
createRaster(SampleModel sm, DataBuffer db, Point location)
Creates a new raster.
Raster
createTranslatedChild(int childMinX, int childMinY)
static WritableRaster
createWritableRaster(SampleModel sm, Point location)
Creates a new writable raster.
static WritableRaster
createWritableRaster(SampleModel sm, DataBuffer db, Point location)
Creates a new writable raster.
Rectangle
getBounds()
Returns a new rectangle containing the bounds of this raster.
DataBuffer
getDataBuffer()
Returns the data buffer that stores the pixel data for this raster.
Object
getDataElements(int x, int y, int w, int h, Object outData)
Object
getDataElements(int x, int y, Object outData)
int
getHeight()
Returns the height of the raster.
int
getMinX()
Returns the x-coordinate of the top left corner of the raster.
int
getMinY()
Returns the t-coordinate of the top left corner of the raster.
int
getNumBands()
Returns the number of bands for this raster.
int
getNumDataElements()
Raster
getParent()
Returns the raster's parent.
double[]
getPixel(int x, int y, double[] dArray)
Returns an array containing the samples for the pixel at (x, y) in the raster.
float[]
getPixel(int x, int y, float[] fArray)
Returns an array containing the samples for the pixel at (x, y) in the raster.
int[]
getPixel(int x, int y, int[] iArray)
Returns an array containing the samples for the pixel at (x, y) in the raster.
double[]
getPixels(int x, int y, int w, int h, double[] dArray)
Returns an array containing the samples for the pixels in the region specified by (x, y, w, h) in the raster.
float[]
getPixels(int x, int y, int w, int h, float[] fArray)
Returns an array containing the samples for the pixels in the region specified by (x, y, w, h) in the raster.
int[]
getPixels(int x, int y, int w, int h, int[] iArray)
Returns an array containing the samples for the pixels in the region specified by (x, y, w, h) in the raster.
int
getSample(int x, int y, int b)
Returns the sample value for the pixel at (x, y) in the raster.
double
getSampleDouble(int x, int y, int b)
Returns the sample value for the pixel at (x, y) in the raster.
float
getSampleFloat(int x, int y, int b)
Returns the sample value for the pixel at (x, y) in the raster.
SampleModel
getSampleModel()
Returns the sample model that accesses the data buffer (to extract pixel data) for this raster.
int
getSampleModelTranslateX()
Returns the x-translation.
int
getSampleModelTranslateY()
Returns the y-translation.
double[]
getSamples(int x, int y, int w, int h, int b, double[] dArray)
Returns an array containing the samples from one band for the pixels in the region specified by (x, y, w, h) in the raster.
float[]
getSamples(int x, int y, int w, int h, int b, float[] fArray)
Returns an array containing the samples from one band for the pixels in the region specified by (x, y, w, h) in the raster.
int[]
getSamples(int x, int y, int w, int h, int b, int[] iArray)
Returns an array containing the samples from one band for the pixels in the region specified by (x, y, w, h) in the raster.
int
getTransferType()
Returns the transfer type for the raster (this is determined by the raster's sample model).
int
getWidth()
Returns the width of the raster.
String
toString()
Create a String representing the state of this Raster.

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

dataBuffer

protected DataBuffer dataBuffer
The data buffer used to store the pixel values.

height

protected int height
The height of the raster.

minX

protected int minX
The x-coordinate of the top left corner of the raster.

minY

protected int minY
The y-coordinate of the top left corner of the raster.

numBands

protected int numBands
The number of bands.

numDataElements

protected int numDataElements

parent

protected Raster parent
The raster's parent.

sampleModel

protected SampleModel sampleModel
The sample model used to access the pixel values.

sampleModelTranslateX

protected int sampleModelTranslateX

sampleModelTranslateY

protected int sampleModelTranslateY

width

protected int width
The width of the raster.

Constructor Details

Raster

protected Raster(SampleModel sampleModel,
                 Point origin)
Creates a new raster.
Parameters:
sampleModel - the sample model.
origin - the origin.

Raster

protected Raster(SampleModel sampleModel,
                 DataBuffer dataBuffer,
                 Point origin)
Creates a new raster.
Parameters:
sampleModel - the sample model.
dataBuffer - the data buffer.
origin - the origin.

Raster

protected Raster(SampleModel sampleModel,
                 DataBuffer dataBuffer,
                 Rectangle aRegion,
                 Point sampleModelTranslate,
                 Raster parent)
Creates a new raster.
Parameters:
sampleModel - the sample model.
dataBuffer - the data buffer.
aRegion - the raster's bounds.
sampleModelTranslate - the translation (null permitted).
parent - the raster's parent.

Method Details

createBandedRaster

public static WritableRaster createBandedRaster(int dataType,
                                                int w,
                                                int h,
                                                int scanlineStride,
                                                int[] bankIndices,
                                                int[] bandOffsets,
                                                Point location)
Creates a new banded raster.
Parameters:
dataType - the data type.
w - the width.
h - the height.
scanlineStride - the number of data elements from a sample on one row to the corresponding sample on the next row.
bankIndices - the index for each bank.
bandOffsets - the offset for each band.
location -
Returns:
The new raster.

createBandedRaster

public static WritableRaster createBandedRaster(int dataType,
                                                int w,
                                                int h,
                                                int bands,
                                                Point location)
Creates a new banded raster.
Parameters:
dataType - the data type.
w - the width.
h - the height.
bands - the number of bands.
location -
Returns:
The new raster.

createBandedRaster

public static WritableRaster createBandedRaster(DataBuffer dataBuffer,
                                                int w,
                                                int h,
                                                int scanlineStride,
                                                int[] bankIndices,
                                                int[] bandOffsets,
                                                Point location)
Creates a new banded raster.
Parameters:
dataBuffer - the data buffer.
w - the width.
h - the height.
scanlineStride - the number of data elements from a sample on one row to the corresponding sample on the next row.
bankIndices - the index for each bank.
bandOffsets - the band offsets.
location -
Returns:
The new raster.

createChild

public Raster createChild(int parentX,
                          int parentY,
                          int width,
                          int height,
                          int childMinX,
                          int childMinY,
                          int[] bandList)

createCompatibleWritableRaster

public WritableRaster createCompatibleWritableRaster()
Creates a new writable raster that is compatible with this raster.
Returns:
A new writable raster.

createCompatibleWritableRaster

public WritableRaster createCompatibleWritableRaster(int w,
                                                     int h)
Creates a new writable raster that is compatible with this raster.
Parameters:
w - the width.
h - the height.
Returns:
A new writable raster.

createCompatibleWritableRaster

public WritableRaster createCompatibleWritableRaster(int x,
                                                     int y,
                                                     int w,
                                                     int h)
Creates a new writable raster that is compatible with this raster, with the specified bounds.
Parameters:
x - the x-coordinate of the top-left corner of the raster.
y - the y-coordinate of the top-left corner of the raster.
w - the raster width.
h - the raster height.
Returns:
A new writable raster.

createCompatibleWritableRaster

public WritableRaster createCompatibleWritableRaster(Rectangle rect)
Creates a new writable raster that is compatible with this raster, with the specified bounds.
Parameters:
rect - the raster bounds.
Returns:
A new writable raster.

createInterleavedRaster

public static WritableRaster createInterleavedRaster(int dataType,
                                                     int w,
                                                     int h,
                                                     int scanlineStride,
                                                     int pixelStride,
                                                     int[] bandOffsets,
                                                     Point location)
Creates an interleaved raster.
Parameters:
dataType - the data type.
w - the width.
h - the height.
scanlineStride - the number of data elements from a sample on one row to the corresponding sample on the next row.
pixelStride - the number of elements from a sample in one pixel to the corresponding sample in the next pixel.
bandOffsets - the band offsets.
location -
Returns:
The new raster.

createInterleavedRaster

public static WritableRaster createInterleavedRaster(int dataType,
                                                     int w,
                                                     int h,
                                                     int bands,
                                                     Point location)
Creates an interleaved raster using the specified data type.
Parameters:
dataType - the data type.
w - the width.
h - the height.
bands - the number of bands.
location -
Returns:
The new raster.

createInterleavedRaster

public static WritableRaster createInterleavedRaster(DataBuffer dataBuffer,
                                                     int w,
                                                     int h,
                                                     int scanlineStride,
                                                     int pixelStride,
                                                     int[] bandOffsets,
                                                     Point location)
Creates a new interleaved raster.
Parameters:
dataBuffer - the data buffer.
w - the width.
h - the height.
scanlineStride - the number of data elements from a sample on one row to the corresponding sample on the next row.
pixelStride - the number of elements from a sample in one pixel to the corresponding sample in the next pixel.
bandOffsets - the offset for each band.
location -
Returns:
The new raster.

createPackedRaster

public static WritableRaster createPackedRaster(int dataType,
                                                int w,
                                                int h,
                                                int bands,
                                                int bitsPerBand,
                                                Point location)
Creates a new raster.
Parameters:
dataType - the data type.
w - the width.
h - the height.
bands - the number of bands.
bitsPerBand - the number of bits per band.
location -
Returns:
The new raster.

createPackedRaster

public static WritableRaster createPackedRaster(int dataType,
                                                int w,
                                                int h,
                                                int[] bandMasks,
                                                Point location)
Creates a new packed raster.
Parameters:
dataType - the data type.
w - the width.
h - the height.
bandMasks - the bit mask for each band.
location -
Returns:
The new raster.

createPackedRaster

public static WritableRaster createPackedRaster(DataBuffer dataBuffer,
                                                int w,
                                                int h,
                                                int scanlineStride,
                                                int[] bandMasks,
                                                Point location)
Creates a new packed raster.
Parameters:
dataBuffer - the data buffer.
w - the width.
h - the height.
scanlineStride - the number of data elements from a sample on one row to the corresponding sample on the next row.
bandMasks - the bit mask for each band.
location -
Returns:
The new raster.

createPackedRaster

public static WritableRaster createPackedRaster(DataBuffer dataBuffer,
                                                int w,
                                                int h,
                                                int bitsPerPixel,
                                                Point location)
Creates a new packed raster.
Parameters:
dataBuffer - the data buffer.
w - the width.
h - the height.
bitsPerPixel - the number of bits per pixel.
location -
Returns:
The new raster.

createRaster

public static Raster createRaster(SampleModel sm,
                                  DataBuffer db,
                                  Point location)
Creates a new raster.
Parameters:
sm - the sample model.
db - the data buffer.
location -
Returns:
The new raster.

createTranslatedChild

public Raster createTranslatedChild(int childMinX,
                                    int childMinY)

createWritableRaster

public static WritableRaster createWritableRaster(SampleModel sm,
                                                  Point location)
Creates a new writable raster.
Parameters:
sm - the sample model.
location -
Returns:
The new writable raster.

createWritableRaster

public static WritableRaster createWritableRaster(SampleModel sm,
                                                  DataBuffer db,
                                                  Point location)
Creates a new writable raster.
Parameters:
sm - the sample model.
db - the data buffer.
location -
Returns:
The new writable raster.

getBounds

public Rectangle getBounds()
Returns a new rectangle containing the bounds of this raster.
Returns:
A new rectangle containing the bounds of this raster.

getDataBuffer

public DataBuffer getDataBuffer()
Returns the data buffer that stores the pixel data for this raster.
Returns:
The data buffer.

getDataElements

public Object getDataElements(int x,
                              int y,
                              int w,
                              int h,
                              Object outData)

getDataElements

public Object getDataElements(int x,
                              int y,
                              Object outData)

getHeight

public final int getHeight()
Returns the height of the raster.
Returns:
The height of the raster.

getMinX

public final int getMinX()
Returns the x-coordinate of the top left corner of the raster.
Returns:
The x-coordinate of the top left corner of the raster.

getMinY

public final int getMinY()
Returns the t-coordinate of the top left corner of the raster.
Returns:
The t-coordinate of the top left corner of the raster.

getNumBands

public final int getNumBands()
Returns the number of bands for this raster.
Returns:
The number of bands.

getNumDataElements

public final int getNumDataElements()

getParent

public Raster getParent()
Returns the raster's parent.
Returns:
The raster's parent.

getPixel

public double[] getPixel(int x,
                         int y,
                         double[] dArray)
Returns an array containing the samples for the pixel at (x, y) in the raster. If dArray 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.
dArray - an array to populate with the sample values and return as the result (if null, a new array will be allocated).
Returns:
The pixel sample values.

getPixel

public float[] getPixel(int x,
                        int y,
                        float[] fArray)
Returns an array containing the samples for the pixel at (x, y) in the raster. If fArray 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.
fArray - an array to populate with the sample values and return as the result (if null, a new array will be allocated).
Returns:
The pixel sample values.

getPixel

public int[] getPixel(int x,
                      int y,
                      int[] iArray)
Returns an array containing the samples for the pixel at (x, y) in the raster. 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).
Returns:
The pixel sample values.

getPixels

public double[] getPixels(int x,
                          int y,
                          int w,
                          int h,
                          double[] dArray)
Returns an array containing the samples for the pixels in the region specified by (x, y, w, h) in the raster. 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 dArray 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.
dArray - an array to populate with the sample values and return as the result (if null, a new array will be allocated).
Returns:
The pixel sample values.

getPixels

public float[] getPixels(int x,
                         int y,
                         int w,
                         int h,
                         float[] fArray)
Returns an array containing the samples for the pixels in the region specified by (x, y, w, h) in the raster. 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 fArray 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.
fArray - an array to populate with the sample values and return as the result (if null, a new array will be allocated).
Returns:
The pixel sample values.

getPixels

public int[] getPixels(int x,
                       int y,
                       int w,
                       int h,
                       int[] iArray)
Returns an array containing the samples for the pixels in the region specified by (x, y, w, h) in the raster. 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).
Returns:
The pixel sample values.

getSample

public int getSample(int x,
                     int y,
                     int b)
Returns the sample value for the pixel at (x, y) in the raster.
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).
Returns:
The sample value.

getSampleDouble

public double getSampleDouble(int x,
                              int y,
                              int b)
Returns the sample value for the pixel at (x, y) in the raster.
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).
Returns:
The sample value.

getSampleFloat

public float getSampleFloat(int x,
                            int y,
                            int b)
Returns the sample value for the pixel at (x, y) in the raster.
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).
Returns:
The sample value.

getSampleModel

public SampleModel getSampleModel()
Returns the sample model that accesses the data buffer (to extract pixel data) for this raster.
Returns:
The sample model.

getSampleModelTranslateX

public final int getSampleModelTranslateX()
Returns the x-translation.
Returns:
The x-translation.

getSampleModelTranslateY

public final int getSampleModelTranslateY()
Returns the y-translation.
Returns:
The y-translation.

getSamples

public double[] getSamples(int x,
                           int y,
                           int w,
                           int h,
                           int b,
                           double[] dArray)
Returns an array containing the samples from one band for the pixels in the region specified by (x, y, w, h) in the raster. If dArray 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.
b - the band (in the range 0 to getNumBands() - 1).
dArray - an array to populate with the sample values and return as the result (if null, a new array will be allocated).
Returns:
The sample values.

getSamples

public float[] getSamples(int x,
                          int y,
                          int w,
                          int h,
                          int b,
                          float[] fArray)
Returns an array containing the samples from one band for the pixels in the region specified by (x, y, w, h) in the raster. If fArray 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.
b - the band (in the range 0 to getNumBands() - 1).
fArray - an array to populate with the sample values and return as the result (if null, a new array will be allocated).
Returns:
The sample values.

getSamples

public int[] getSamples(int x,
                        int y,
                        int w,
                        int h,
                        int b,
                        int[] iArray)
Returns an array containing the samples from one band for the pixels in the region specified by (x, y, w, h) in the raster. 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.
b - the band (in the range 0 to getNumBands() - 1).
iArray - an array to populate with the sample values and return as the result (if null, a new array will be allocated).
Returns:
The sample values.

getTransferType

public final int getTransferType()
Returns the transfer type for the raster (this is determined by the raster's sample model).
Returns:
The transfer type.

getWidth

public final int getWidth()
Returns the width of the raster.
Returns:
The width of the raster.

toString

public String toString()
Create a String representing the state of this Raster.
Overrides:
toString in interface Object
Returns:
A String representing the stat of this Raster.

Copyright (C) 2000, 2002, 2003, 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.