diff options
Diffstat (limited to 'libjava/classpath/java/awt/image/Raster.java')
-rw-r--r-- | libjava/classpath/java/awt/image/Raster.java | 344 |
1 files changed, 172 insertions, 172 deletions
diff --git a/libjava/classpath/java/awt/image/Raster.java b/libjava/classpath/java/awt/image/Raster.java index 615155fb3f9..6d99c3683a1 100644 --- a/libjava/classpath/java/awt/image/Raster.java +++ b/libjava/classpath/java/awt/image/Raster.java @@ -46,44 +46,44 @@ import java.awt.Rectangle; * A rectangular collection of pixels composed from a {@link DataBuffer} which * stores the pixel values, and a {@link SampleModel} which is used to retrieve * the pixel values. - * + * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public class Raster { /** The sample model used to access the pixel values. */ protected SampleModel sampleModel; - + /** The data buffer used to store the pixel values. */ protected DataBuffer dataBuffer; - + /** The x-coordinate of the top left corner of the raster. */ protected int minX; - + /** The y-coordinate of the top left corner of the raster. */ protected int minY; - + /** The width of the raster. */ protected int width; - + /** The height of the raster. */ protected int height; - + protected int sampleModelTranslateX; - + protected int sampleModelTranslateY; - + /** The number of bands. */ protected int numBands; - + protected int numDataElements; - + /** The raster's parent. */ protected Raster parent; - + /** * Creates a new raster. - * + * * @param sampleModel the sample model. * @param origin the origin. */ @@ -91,10 +91,10 @@ public class Raster { this(sampleModel, sampleModel.createDataBuffer(), origin); } - + /** * Creates a new raster. - * + * * @param sampleModel the sample model. * @param dataBuffer the data buffer. * @param origin the origin. @@ -108,7 +108,7 @@ public class Raster /** * Creates a new raster. - * + * * @param sampleModel the sample model. * @param dataBuffer the data buffer. * @param aRegion the raster's bounds. @@ -124,7 +124,7 @@ public class Raster this.minY = aRegion.y; this.width = aRegion.width; this.height = aRegion.height; - + // If sampleModelTranslate is null, use (0,0). Methods such as // Raster.createRaster are specified to allow for a null argument. if (sampleModelTranslate != null) @@ -137,16 +137,16 @@ public class Raster this.numDataElements = sampleModel.getNumDataElements(); this.parent = parent; } - + /** * Creates an interleaved raster using the specified data type. - * + * * @param dataType the data type. * @param w the width. * @param h the height. * @param bands the number of bands. * @param location - * + * * @return The new raster. */ public static WritableRaster createInterleavedRaster(int dataType, @@ -154,9 +154,9 @@ public class Raster { int[] bandOffsets = new int[bands]; // TODO: Maybe not generate this every time. - for (int b = 0; b < bands; b++) + for (int b = 0; b < bands; b++) bandOffsets[b] = b; - + int scanlineStride = bands * w; return createInterleavedRaster(dataType, w, h, scanlineStride, bands, bandOffsets, location); @@ -164,20 +164,20 @@ public class Raster /** * Creates an interleaved raster. - * + * * @param dataType the data type. * @param w the width. * @param h the height. - * @param scanlineStride the number of data elements from a sample on one + * @param scanlineStride the number of data elements from a sample on one * row to the corresponding sample on the next row. * @param pixelStride the number of elements from a sample in one pixel to * the corresponding sample in the next pixel. * @param bandOffsets the band offsets. * @param location - * + * * @return The new raster. */ - public static WritableRaster createInterleavedRaster(int dataType, + public static WritableRaster createInterleavedRaster(int dataType, int w, int h, int scanlineStride, int pixelStride, int[] bandOffsets, Point location) { @@ -188,16 +188,16 @@ public class Raster /** * Creates a new banded raster. - * + * * @param dataType the data type. * @param w the width. * @param h the height. * @param bands the number of bands. - * @param location - * + * @param location + * * @return The new raster. */ - public static WritableRaster createBandedRaster(int dataType, int w, int h, + public static WritableRaster createBandedRaster(int dataType, int w, int h, int bands, Point location) { SampleModel sm = new BandedSampleModel(dataType, w, h, bands); @@ -206,16 +206,16 @@ public class Raster /** * Creates a new banded raster. - * + * * @param dataType the data type. * @param w the width. * @param h the height. - * @param scanlineStride the number of data elements from a sample on one + * @param scanlineStride the number of data elements from a sample on one * row to the corresponding sample on the next row. * @param bankIndices the index for each bank. * @param bandOffsets the offset for each band. * @param location - * + * * @return The new raster. */ public static WritableRaster createBandedRaster(int dataType, int w, int h, @@ -225,16 +225,16 @@ public class Raster bankIndices, bandOffsets); return createWritableRaster(sm, location); } - + /** * Creates a new packed raster. - * + * * @param dataType the data type. * @param w the width. * @param h the height. * @param bandMasks the bit mask for each band. - * @param location - * + * @param location + * * @return The new raster. */ public static WritableRaster createPackedRaster(int dataType, int w, int h, @@ -247,14 +247,14 @@ public class Raster /** * Creates a new raster. - * + * * @param dataType the data type. * @param w the width. * @param h the height. * @param bands the number of bands. * @param bitsPerBand the number of bits per band. * @param location - * + * * @return The new raster. */ public static WritableRaster createPackedRaster(int dataType, @@ -278,7 +278,7 @@ public class Raster bandMasks[i] = mask; mask <<= bitsPerBand; } - + sm = new SinglePixelPackedSampleModel(dataType, w, h, bandMasks); } return createWritableRaster(sm, location); @@ -286,21 +286,21 @@ public class Raster /** * Creates a new interleaved raster. - * + * * @param dataBuffer the data buffer. * @param w the width. * @param h the height. - * @param scanlineStride the number of data elements from a sample on one + * @param scanlineStride the number of data elements from a sample on one * row to the corresponding sample on the next row. * @param pixelStride the number of elements from a sample in one pixel to * the corresponding sample in the next pixel. * @param bandOffsets the offset for each band. * @param location - * + * * @return The new raster. */ - public static WritableRaster createInterleavedRaster(DataBuffer dataBuffer, - int w, int h, int scanlineStride, int pixelStride, int[] bandOffsets, + public static WritableRaster createInterleavedRaster(DataBuffer dataBuffer, + int w, int h, int scanlineStride, int pixelStride, int[] bandOffsets, Point location) { SampleModel sm = new ComponentSampleModel(dataBuffer.getDataType(), @@ -310,16 +310,16 @@ public class Raster /** * Creates a new banded raster. - * + * * @param dataBuffer the data buffer. * @param w the width. * @param h the height. - * @param scanlineStride the number of data elements from a sample on one + * @param scanlineStride the number of data elements from a sample on one * row to the corresponding sample on the next row. * @param bankIndices the index for each bank. * @param bandOffsets the band offsets. * @param location - * + * * @return The new raster. */ public static WritableRaster createBandedRaster(DataBuffer dataBuffer, @@ -330,18 +330,18 @@ public class Raster w, h, scanlineStride, bankIndices, bandOffsets); return createWritableRaster(sm, dataBuffer, location); } - + /** * Creates a new packed raster. - * + * * @param dataBuffer the data buffer. * @param w the width. * @param h the height. - * @param scanlineStride the number of data elements from a sample on one + * @param scanlineStride the number of data elements from a sample on one * row to the corresponding sample on the next row. * @param bandMasks the bit mask for each band. * @param location - * + * * @return The new raster. */ public static WritableRaster createPackedRaster(DataBuffer dataBuffer, @@ -351,16 +351,16 @@ public class Raster w, h, scanlineStride, bandMasks); return createWritableRaster(sm, dataBuffer, location); } - + /** * Creates a new packed raster. - * + * * @param dataBuffer the data buffer. * @param w the width. * @param h the height. * @param bitsPerPixel the number of bits per pixel. * @param location - * + * * @return The new raster. */ public static WritableRaster createPackedRaster(DataBuffer dataBuffer, @@ -370,14 +370,14 @@ public class Raster w, h, bitsPerPixel); return createWritableRaster(sm, dataBuffer, location); } - + /** * Creates a new raster. - * + * * @param sm the sample model. * @param db the data buffer. * @param location - * + * * @return The new raster. */ public static Raster createRaster(SampleModel sm, DataBuffer db, @@ -388,10 +388,10 @@ public class Raster /** * Creates a new writable raster. - * + * * @param sm the sample model. * @param location - * + * * @return The new writable raster. */ public static WritableRaster createWritableRaster(SampleModel sm, @@ -402,11 +402,11 @@ public class Raster /** * Creates a new writable raster. - * + * * @param sm the sample model. * @param db the data buffer. - * @param location - * + * @param location + * * @return The new writable raster. */ public static WritableRaster createWritableRaster(SampleModel sm, @@ -417,7 +417,7 @@ public class Raster /** * Returns the raster's parent. - * + * * @return The raster's parent. */ public Raster getParent() @@ -427,7 +427,7 @@ public class Raster /** * Returns the x-translation. - * + * * @return The x-translation. */ public final int getSampleModelTranslateX() @@ -437,7 +437,7 @@ public class Raster /** * Returns the y-translation. - * + * * @return The y-translation. */ public final int getSampleModelTranslateY() @@ -447,7 +447,7 @@ public class Raster /** * Creates a new writable raster that is compatible with this raster. - * + * * @return A new writable raster. */ public WritableRaster createCompatibleWritableRaster() @@ -457,10 +457,10 @@ public class Raster /** * Creates a new writable raster that is compatible with this raster. - * + * * @param w the width. * @param h the height. - * + * * @return A new writable raster. */ public WritableRaster createCompatibleWritableRaster(int w, int h) @@ -471,9 +471,9 @@ public class Raster /** * Creates a new writable raster that is compatible with this raster, with * the specified bounds. - * + * * @param rect the raster bounds. - * + * * @return A new writable raster. */ public WritableRaster createCompatibleWritableRaster(Rectangle rect) @@ -485,12 +485,12 @@ public class Raster /** * Creates a new writable raster that is compatible with this raster, with * the specified bounds. - * + * * @param x the x-coordinate of the top-left corner of the raster. * @param y the y-coordinate of the top-left corner of the raster. * @param w the raster width. * @param h the raster height. - * + * * @return A new writable raster. */ public WritableRaster createCompatibleWritableRaster(int x, int y, @@ -503,7 +503,7 @@ public class Raster public Raster createTranslatedChild(int childMinX, int childMinY) { int tcx = sampleModelTranslateX - minX + childMinX; int tcy = sampleModelTranslateY - minY + childMinY; - + return new Raster(sampleModel, dataBuffer, new Rectangle(childMinX, childMinY, width, height), new Point(tcx, tcy), this); @@ -516,7 +516,7 @@ public class Raster if (parentX < minX || parentX + width > minX + this.width || parentY < minY || parentY + height > minY + this.height) throw new RasterFormatException("Child raster extends beyond parent"); - + SampleModel sm = (bandList == null) ? sampleModel : sampleModel.createSubsetSampleModel(bandList); @@ -526,18 +526,18 @@ public class Raster / +------------------------- |\. __ parent trans - | \`. + | \`. | \ `. parent origin | \ `. / | /\ +-------- - - |trans\ /<\-- deltaTrans - |child +-+-\---- - - + |child +-+-\---- - - | /|`| \__ parent [x, y] |child | |`. \ |origin| : `.\ | | / `\ | : / + - | child [x, y] + | child [x, y] parent_xy - parent_trans = child_xy - child_trans @@ -553,7 +553,7 @@ public class Raster /** * Returns a new rectangle containing the bounds of this raster. - * + * * @return A new rectangle containing the bounds of this raster. */ public Rectangle getBounds() @@ -563,7 +563,7 @@ public class Raster /** * Returns the x-coordinate of the top left corner of the raster. - * + * * @return The x-coordinate of the top left corner of the raster. */ public final int getMinX() @@ -573,7 +573,7 @@ public class Raster /** * Returns the t-coordinate of the top left corner of the raster. - * + * * @return The t-coordinate of the top left corner of the raster. */ public final int getMinY() @@ -583,7 +583,7 @@ public class Raster /** * Returns the width of the raster. - * + * * @return The width of the raster. */ public final int getWidth() @@ -593,7 +593,7 @@ public class Raster /** * Returns the height of the raster. - * + * * @return The height of the raster. */ public final int getHeight() @@ -603,23 +603,23 @@ public class Raster /** * Returns the number of bands for this raster. - * + * * @return The number of bands. */ public final int getNumBands() { return numBands; } - + public final int getNumDataElements() { return numDataElements; } - + /** - * Returns the transfer type for the raster (this is determined by the + * Returns the transfer type for the raster (this is determined by the * raster's sample model). - * + * * @return The transfer type. */ public final int getTransferType() @@ -629,7 +629,7 @@ public class Raster /** * Returns the data buffer that stores the pixel data for this raster. - * + * * @return The data buffer. */ public DataBuffer getDataBuffer() @@ -640,7 +640,7 @@ public class Raster /** * Returns the sample model that accesses the data buffer (to extract pixel * data) for this raster. - * + * * @return The sample model. */ public SampleModel getSampleModel() @@ -662,15 +662,15 @@ public class Raster /** * Returns an array containing the samples for the pixel at (x, y) in the - * raster. If <code>iArray</code> is not <code>null</code>, it will be + * raster. If <code>iArray</code> is not <code>null</code>, it will be * populated with the sample values and returned as the result of * this function (this avoids allocating a new array instance). - * + * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. - * @param iArray an array to populate with the sample values and return as + * @param iArray an array to populate with the sample values and return as * the result (if <code>null</code>, a new array will be allocated). - * + * * @return The pixel sample values. */ public int[] getPixel(int x, int y, int[] iArray) @@ -681,15 +681,15 @@ public class Raster /** * Returns an array containing the samples for the pixel at (x, y) in the - * raster. If <code>fArray</code> is not <code>null</code>, it will be + * raster. If <code>fArray</code> is not <code>null</code>, it will be * populated with the sample values and returned as the result of * this function (this avoids allocating a new array instance). - * + * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. - * @param fArray an array to populate with the sample values and return as + * @param fArray an array to populate with the sample values and return as * the result (if <code>null</code>, a new array will be allocated). - * + * * @return The pixel sample values. */ public float[] getPixel(int x, int y, float[] fArray) @@ -700,15 +700,15 @@ public class Raster /** * Returns an array containing the samples for the pixel at (x, y) in the - * raster. If <code>dArray</code> is not <code>null</code>, it will be + * raster. If <code>dArray</code> is not <code>null</code>, it will be * populated with the sample values and returned as the result of * this function (this avoids allocating a new array instance). - * + * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. - * @param dArray an array to populate with the sample values and return as + * @param dArray an array to populate with the sample values and return as * the result (if <code>null</code>, a new array will be allocated). - * + * * @return The pixel sample values. */ public double[] getPixel(int x, int y, double[] dArray) @@ -718,21 +718,21 @@ public class Raster } /** - * 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 <code>iArray</code> is not <code>null</code>, it will be populated - * with the sample values and returned as the result of this function (this + * 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 <code>iArray</code> is not <code>null</code>, it will be populated + * with the sample values and returned as the result of this function (this * avoids allocating a new array instance). - * + * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. - * @param iArray an array to populate with the sample values and return as + * @param iArray an array to populate with the sample values and return as * the result (if <code>null</code>, a new array will be allocated). - * + * * @return The pixel sample values. */ public int[] getPixels(int x, int y, int w, int h, int[] iArray) @@ -742,21 +742,21 @@ public class Raster } /** - * 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 <code>fArray</code> is not <code>null</code>, it will be populated - * with the sample values and returned as the result of this function (this + * 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 <code>fArray</code> is not <code>null</code>, it will be populated + * with the sample values and returned as the result of this function (this * avoids allocating a new array instance). - * + * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. - * @param fArray an array to populate with the sample values and return as + * @param fArray an array to populate with the sample values and return as * the result (if <code>null</code>, a new array will be allocated). - * + * * @return The pixel sample values. */ public float[] getPixels(int x, int y, int w, int h, float[] fArray) @@ -766,21 +766,21 @@ public class Raster } /** - * 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 <code>dArray</code> is not <code>null</code>, it will be populated - * with the sample values and returned as the result of this function (this + * 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 <code>dArray</code> is not <code>null</code>, it will be populated + * with the sample values and returned as the result of this function (this * avoids allocating a new array instance). - * + * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. - * @param dArray an array to populate with the sample values and return as + * @param dArray an array to populate with the sample values and return as * the result (if <code>null</code>, a new array will be allocated). - * + * * @return The pixel sample values. */ public double[] getPixels(int x, int y, int w, int h, double[] dArray) @@ -791,12 +791,12 @@ public class Raster /** * Returns the sample value for the pixel at (x, y) in the raster. - * + * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. - * @param b the band (in the range <code>0</code> to + * @param b the band (in the range <code>0</code> to * <code>getNumBands() - 1</code>). - * + * * @return The sample value. */ public int getSample(int x, int y, int b) @@ -807,14 +807,14 @@ public class Raster /** * Returns the sample value for the pixel at (x, y) in the raster. - * + * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. - * @param b the band (in the range <code>0</code> to + * @param b the band (in the range <code>0</code> to * <code>getNumBands() - 1</code>). - * + * * @return The sample value. - * + * * @see #getSample(int, int, int) */ public float getSampleFloat(int x, int y, int b) @@ -825,14 +825,14 @@ public class Raster /** * Returns the sample value for the pixel at (x, y) in the raster. - * + * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. - * @param b the band (in the range <code>0</code> to + * @param b the band (in the range <code>0</code> to * <code>getNumBands() - 1</code>). - * + * * @return The sample value. - * + * * @see #getSample(int, int, int) */ public double getSampleDouble(int x, int y, int b) @@ -842,21 +842,21 @@ public class Raster } /** - * 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 - * <code>iArray</code> is not <code>null</code>, it will be - * populated with the sample values and returned as the result of this + * 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 + * <code>iArray</code> is not <code>null</code>, it will be + * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). - * + * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. - * @param b the band (in the range <code>0</code> to + * @param b the band (in the range <code>0</code> to * </code>getNumBands() - 1</code>). - * @param iArray an array to populate with the sample values and return as + * @param iArray an array to populate with the sample values and return as * the result (if <code>null</code>, a new array will be allocated). - * + * * @return The sample values. */ public int[] getSamples(int x, int y, int w, int h, int b, @@ -867,23 +867,23 @@ public class Raster } /** - * 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 - * <code>fArray</code> is not <code>null</code>, it will be - * populated with the sample values and returned as the result of this + * 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 + * <code>fArray</code> is not <code>null</code>, it will be + * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. - * @param b the band (in the range <code>0</code> to + * @param b the band (in the range <code>0</code> to * </code>getNumBands() - 1</code>). - * @param fArray an array to populate with the sample values and return as + * @param fArray an array to populate with the sample values and return as * the result (if <code>null</code>, a new array will be allocated). - * + * * @return The sample values. - */ + */ public float[] getSamples(int x, int y, int w, int h, int b, float[] fArray) { return sampleModel.getSamples(x - sampleModelTranslateX, @@ -891,39 +891,39 @@ public class Raster } /** - * 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 - * <code>dArray</code> is not <code>null</code>, it will be - * populated with the sample values and returned as the result of this + * 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 + * <code>dArray</code> is not <code>null</code>, it will be + * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). - * + * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. - * @param b the band (in the range <code>0</code> to + * @param b the band (in the range <code>0</code> to * </code>getNumBands() - 1</code>). - * @param dArray an array to populate with the sample values and return as + * @param dArray an array to populate with the sample values and return as * the result (if <code>null</code>, a new array will be allocated). - * + * * @return The sample values. */ - public double[] getSamples(int x, int y, int w, int h, int b, + public double[] getSamples(int x, int y, int w, int h, int b, double[] dArray) { return sampleModel.getSamples(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, b, dArray, dataBuffer); } - + /** * Create a String representing the state of this Raster. - * + * * @return A String representing the stat of this Raster. */ public String toString() { CPStringBuilder result = new CPStringBuilder(); - + result.append(getClass().getName()); result.append("[("); result.append(minX).append(",").append(minY).append("), "); @@ -931,12 +931,12 @@ public class Raster result.append(sampleModel).append(","); result.append(dataBuffer); result.append("]"); - + return result.toString(); } /** - * Returns the number of bits used to represent the specified data type. + * Returns the number of bits used to represent the specified data type. * Valid types are: * <ul> * <li>{@link DataBuffer#TYPE_BYTE};</li> @@ -947,9 +947,9 @@ public class Raster * <li>{@link DataBuffer#TYPE_DOUBLE};</li> * </ul> * This method returns 0 for invalid data types. - * + * * @param dataType the data type. - * + * * @return The number of bits used to represent the specified data type. */ private static int getTypeBits(int dataType) |