diff options
Diffstat (limited to 'awt/java/awt/image/WritableRaster.java')
-rw-r--r-- | awt/java/awt/image/WritableRaster.java | 592 |
1 files changed, 0 insertions, 592 deletions
diff --git a/awt/java/awt/image/WritableRaster.java b/awt/java/awt/image/WritableRaster.java deleted file mode 100644 index 51366ee..0000000 --- a/awt/java/awt/image/WritableRaster.java +++ /dev/null @@ -1,592 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * @author Igor V. Stolyarov - * @version $Revision$ - */ - -package java.awt.image; - -import java.awt.Point; -import java.awt.Rectangle; - -import org.apache.harmony.awt.internal.nls.Messages; - -/** - * The WritableRaster class provides functionality for writing samples and pixel - * capabilities to the Raster. - * - * @since Android 1.0 - */ -public class WritableRaster extends Raster { - - /** - * Instantiates a new WritableRaster object with the specified SampleModel, - * DataBuffer, rectangular region and parent WritableRaster. - * - * @param sampleModel - * the specified SampleModel. - * @param dataBuffer - * the specified DataBuffer. - * @param aRegion - * the rectangular region which defines the new image bounds. - * @param sampleModelTranslate - * this point defines the translation point from the SampleModel - * to the new WritableRaster coordinates. - * @param parent - * the parent of this WritableRaster. - */ - protected WritableRaster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, - Point sampleModelTranslate, WritableRaster parent) { - super(sampleModel, dataBuffer, aRegion, sampleModelTranslate, parent); - } - - /** - * Instantiates a new WritableRaster object with the specified SampleModel - * which defines a layout of this WritableRaster and DataBuffer objects - * which defines the image data. - * - * @param sampleModel - * the specified SampleModel. - * @param dataBuffer - * the specified DataBuffer. - * @param origin - * the point of origin. - */ - protected WritableRaster(SampleModel sampleModel, DataBuffer dataBuffer, Point origin) { - this(sampleModel, dataBuffer, new Rectangle(origin.x, origin.y, sampleModel.width, - sampleModel.height), origin, null); - } - - /** - * Instantiates a new WritableRaster with the specified SampleModel. - * - * @param sampleModel - * the specified SampleModel. - * @param origin - * the origin. - */ - protected WritableRaster(SampleModel sampleModel, Point origin) { - this(sampleModel, sampleModel.createDataBuffer(), new Rectangle(origin.x, origin.y, - sampleModel.width, sampleModel.height), origin, null); - } - - /** - * Sets the data for a single pixel from an input Object which represents an - * array of primitive types: DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, - * DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, or - * DataBuffer.TYPE_DOUBLE. - * - * @param x - * the X coordinate of the pixel. - * @param y - * the Y coordinate of the pixel. - * @param inData - * the input data. - */ - public void setDataElements(int x, int y, Object inData) { - sampleModel.setDataElements(x - sampleModelTranslateX, y - sampleModelTranslateY, inData, - dataBuffer); - } - - /** - * Sets the data elements which represent pixel data to the specified - * rectangle area as a primitive array. The following image data types are - * supported: DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, - * DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, or - * DataBuffer.TYPE_DOUBLE. - * - * @param x - * the X coordinate of the rectangle of pixels. - * @param y - * the Y coordinate of the rectangle of pixels. - * @param w - * the width of the rectangle of pixels. - * @param h - * the height of the rectangle of pixels. - * @param inData - * the array of primitive type data to be set to the specified - * area. - */ - public void setDataElements(int x, int y, int w, int h, Object inData) { - sampleModel.setDataElements(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, - inData, dataBuffer); - } - - /** - * Creates the child of this WritableRaster by sharing the specified - * rectangular area in this WritableRaster. The parentX, parentY, width and - * height parameters specify rectangular area to be shared. - * - * @param parentX - * the X coordinate of the upper left corner of the shared - * rectangle with respect to this WritableRaster' coordinates. - * @param parentY - * the Y coordinate of the upper left corner of the shared - * rectangle with respect to this WritableRaster' coordinates. - * @param w - * the width of the child area. - * @param h - * the height of the child area. - * @param childMinX - * the X coordinate of child area mapped to the parentX - * coordinate. - * @param childMinY - * the Y coordinate of child area mapped to the parentY - * coordinate. - * @param bandList - * the array of band indices. - * @return the child WritableRaster. - */ - public WritableRaster createWritableChild(int parentX, int parentY, int w, int h, - int childMinX, int childMinY, int bandList[]) { - if (w <= 0 || h <= 0) { - // awt.244=Width or Height of child Raster is less than or equal to - // zero - throw new RasterFormatException(Messages.getString("awt.244")); //$NON-NLS-1$ - } - - if (parentX < this.minX || parentX + w > this.minX + this.width) { - // awt.245=parentX disposes outside Raster - throw new RasterFormatException(Messages.getString("awt.245")); //$NON-NLS-1$ - } - - if (parentY < this.minY || parentY + h > this.minY + this.height) { - // awt.246=parentY disposes outside Raster - throw new RasterFormatException(Messages.getString("awt.246")); //$NON-NLS-1$ - } - - if ((long)parentX + w > Integer.MAX_VALUE) { - // awt.247=parentX + w results in integer overflow - throw new RasterFormatException(Messages.getString("awt.247")); //$NON-NLS-1$ - } - - if ((long)parentY + h > Integer.MAX_VALUE) { - // awt.248=parentY + h results in integer overflow - throw new RasterFormatException(Messages.getString("awt.248")); //$NON-NLS-1$ - } - - if ((long)childMinX + w > Integer.MAX_VALUE) { - // awt.249=childMinX + w results in integer overflow - throw new RasterFormatException(Messages.getString("awt.249")); //$NON-NLS-1$ - } - - if ((long)childMinY + h > Integer.MAX_VALUE) { - // awt.24A=childMinY + h results in integer overflow - throw new RasterFormatException(Messages.getString("awt.24A")); //$NON-NLS-1$ - } - - SampleModel childModel; - - if (bandList == null) { - childModel = sampleModel; - } else { - childModel = sampleModel.createSubsetSampleModel(bandList); - } - - int childTranslateX = childMinX - parentX; - int childTranslateY = childMinY - parentY; - - return new WritableRaster(childModel, dataBuffer, - new Rectangle(childMinX, childMinY, w, h), new Point(childTranslateX - + sampleModelTranslateX, childTranslateY + sampleModelTranslateY), this); - } - - /** - * Creates the translated child of this WritableRaster. New WritableRaster - * object is a reference to the this WritableRaster and with different - * location. - * - * @param childMinX - * the X coordinate of the new WritableRaster. - * @param childMinY - * the Y coordinate of the new WritableRaster. - * @return the WritableRaster. - */ - public WritableRaster createWritableTranslatedChild(int childMinX, int childMinY) { - return createWritableChild(minX, minY, width, height, childMinX, childMinY, null); - } - - /** - * Gets the parent WritableRaster for this WritableRaster object. - * - * @return the parent WritableRaster for this WritableRaster object. - */ - public WritableRaster getWritableParent() { - return (WritableRaster)parent; - } - - /** - * Sets pixels from the specified source Raster srcRaster to this - * WritableRaster. - * - * @param srcRaster - * the source Raster. - */ - public void setRect(Raster srcRaster) { - setRect(0, 0, srcRaster); - } - - /** - * Sets pixels from the specified source Raster srcRaster to this - * WritableRaster. Each pixel with (x, y) coordinates from the source Raster - * is copied to pixel with (x+dx, y+dy) coordinates in this WritableRaster. - * The pixels with (x+dx, y+dy) coordinates which are out the bounds of this - * raster are ignored. - * - * @param dx - * the distance the pixel's X coordinate in the source Raster is - * translated when writtien to this WritableRaster. - * @param dy - * the distance the pixel's Y coordinate in the source Raster is - * translated when writtien to this WritableRaster. - * @param srcRaster - * the source Raster. - */ - public void setRect(int dx, int dy, Raster srcRaster) { - int w = srcRaster.getWidth(); - int h = srcRaster.getHeight(); - - int srcX = srcRaster.getMinX(); - int srcY = srcRaster.getMinY(); - - int dstX = srcX + dx; - int dstY = srcY + dy; - - if (dstX < this.minX) { - int minOffX = this.minX - dstX; - w -= minOffX; - dstX = this.minX; - srcX += minOffX; - } - - if (dstY < this.minY) { - int minOffY = this.minY - dstY; - h -= minOffY; - dstY = this.minY; - srcY += minOffY; - } - - if (dstX + w > this.minX + this.width) { - int maxOffX = (dstX + w) - (this.minX + this.width); - w -= maxOffX; - } - - if (dstY + h > this.minY + this.height) { - int maxOffY = (dstY + h) - (this.minY + this.height); - h -= maxOffY; - } - - if (w <= 0 || h <= 0) { - return; - } - - switch (sampleModel.getDataType()) { - case DataBuffer.TYPE_BYTE: - case DataBuffer.TYPE_SHORT: - case DataBuffer.TYPE_USHORT: - case DataBuffer.TYPE_INT: - int iPixelsLine[] = null; - for (int i = 0; i < h; i++) { - iPixelsLine = srcRaster.getPixels(srcX, srcY + i, w, 1, iPixelsLine); - setPixels(dstX, dstY + i, w, 1, iPixelsLine); - } - break; - - case DataBuffer.TYPE_FLOAT: - float fPixelsLine[] = null; - for (int i = 0; i < h; i++) { - fPixelsLine = srcRaster.getPixels(srcX, srcY + i, w, 1, fPixelsLine); - setPixels(dstX, dstY + i, w, 1, fPixelsLine); - } - break; - - case DataBuffer.TYPE_DOUBLE: - double dPixelsLine[] = null; - for (int i = 0; i < h; i++) { - dPixelsLine = srcRaster.getPixels(srcX, srcY + i, w, 1, dPixelsLine); - setPixels(dstX, dstY + i, w, 1, dPixelsLine); - } - break; - } - } - - /** - * Sets the data for a rectangle of pixels from an input Raster to this - * WritableRaster. - * - * @param x - * the X coordinate of the point where the data of the input - * Raster is to be written. - * @param y - * the Y coordinate of the point where the data of the input - * Raster is to be written. - * @param inRaster - * the input Raster. - */ - public void setDataElements(int x, int y, Raster inRaster) { - int dstX = x + inRaster.getMinX(); - int dstY = y + inRaster.getMinY(); - - int w = inRaster.getWidth(); - int h = inRaster.getHeight(); - - if (dstX < this.minX || dstX + w > this.minX + this.width || dstY < this.minY - || dstY + h > this.minY + this.height) { - // awt.63=Coordinates are not in bounds - throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ - } - - int srcX = inRaster.getMinX(); - int srcY = inRaster.getMinY(); - Object line = null; - - for (int i = 0; i < h; i++) { - line = inRaster.getDataElements(srcX, srcY + i, w, 1, line); - setDataElements(dstX, dstY + i, w, 1, line); - } - } - - /** - * Sets an integer array of samples for the specified pixel in this - * WritableRaster. - * - * @param x - * the pixel's X coordinate. - * @param y - * the pixel's Y coordinate. - * @param iArray - * the integer array of samples. - */ - public void setPixel(int x, int y, int iArray[]) { - sampleModel.setPixel(x - sampleModelTranslateX, y - sampleModelTranslateY, iArray, - dataBuffer); - } - - /** - * Sets a float array of samples for the specified pixel in this - * WritableRaster. - * - * @param x - * the pixel's X coordinate. - * @param y - * the pixel's Y coordinate. - * @param fArray - * the float array of samples. - */ - public void setPixel(int x, int y, float fArray[]) { - sampleModel.setPixel(x - sampleModelTranslateX, y - sampleModelTranslateY, fArray, - dataBuffer); - } - - /** - * Sets a double array of samples for the specified pixel in this - * WritableRaster. - * - * @param x - * the pixel's X coordinate. - * @param y - * the pixel's Y coordinate. - * @param dArray - * the double array of samples. - */ - public void setPixel(int x, int y, double dArray[]) { - sampleModel.setPixel(x - sampleModelTranslateX, y - sampleModelTranslateY, dArray, - dataBuffer); - } - - /** - * Sets a integer array of samples for the specified rectangular area of - * pixels in this WritableRaster. - * - * @param x - * the X coordinate of rectangular area. - * @param y - * the Y coordinate of rectangular area. - * @param w - * the width of rectangular area. - * @param h - * the height of rectangular area. - * @param iArray - * the integer array of samples. - */ - public void setPixels(int x, int y, int w, int h, int iArray[]) { - sampleModel.setPixels(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, iArray, - dataBuffer); - } - - /** - * Sets a float array of samples for the specified rectangular area of - * pixels in this WritableRaster. - * - * @param x - * the X coordinate of rectangular area. - * @param y - * the Y coordinate of rectangular area. - * @param w - * the width of rectangular area. - * @param h - * the height of rectangular area. - * @param fArray - * the float array of samples. - */ - public void setPixels(int x, int y, int w, int h, float fArray[]) { - sampleModel.setPixels(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, fArray, - dataBuffer); - } - - /** - * Sets a double array of samples for the specified rectangular area of - * pixels in this WritableRaster. - * - * @param x - * the X coordinate of rectangular area. - * @param y - * the Y coordinate of rectangular area. - * @param w - * the width of rectangular area. - * @param h - * the height of rectangular area. - * @param dArray - * the double array of samples. - */ - public void setPixels(int x, int y, int w, int h, double dArray[]) { - sampleModel.setPixels(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, dArray, - dataBuffer); - } - - /** - * Sets the samples for the specified band and the specified rectangular - * area of pixels with an integer array of samples. - * - * @param x - * the X coordinate of the area of pixels. - * @param y - * the Y coordinate of the area of pixels. - * @param w - * the width of the area of pixels. - * @param h - * the height of the area of pixels. - * @param b - * the specified band. - * @param iArray - * the integer array of samples. - */ - public void setSamples(int x, int y, int w, int h, int b, int iArray[]) { - sampleModel.setSamples(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, b, - iArray, dataBuffer); - } - - /** - * Sets the samples for the specified band and the specified rectangular - * area of pixels with a float array of samples. - * - * @param x - * the X coordinate of the area of pixels. - * @param y - * the Y coordinate of the area of pixels. - * @param w - * the width of the area of pixels. - * @param h - * the height of the area of pixels. - * @param b - * the specified band. - * @param fArray - * the float array of samples. - */ - public void setSamples(int x, int y, int w, int h, int b, float fArray[]) { - sampleModel.setSamples(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, b, - fArray, dataBuffer); - } - - /** - * Sets the samples for the specified band and the specified rectangular - * area of pixels with a double array of samples. - * - * @param x - * the X coordinate of the area of pixels. - * @param y - * the Y coordinate of the area of pixels. - * @param w - * the width of the area of pixels. - * @param h - * the height of the area of pixels. - * @param b - * the specified band. - * @param dArray - * the double array of samples. - */ - public void setSamples(int x, int y, int w, int h, int b, double dArray[]) { - sampleModel.setSamples(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, b, - dArray, dataBuffer); - } - - /** - * Sets the sample for the specified band and the specified pixel with an - * integer sample. - * - * @param x - * the X coordinate of the pixel. - * @param y - * the Y coordinate of the pixel. - * @param b - * the specified band. - * @param s - * the sample to be set. - */ - public void setSample(int x, int y, int b, int s) { - sampleModel.setSample(x - sampleModelTranslateX, y - sampleModelTranslateY, b, s, - dataBuffer); - } - - /** - * Sets the sample for the specified band and the specified pixel with a - * float sample. - * - * @param x - * the X coordinate of the pixel. - * @param y - * the Y coordinate of the pixel. - * @param b - * the specified band. - * @param s - * the sample to be set. - */ - public void setSample(int x, int y, int b, float s) { - sampleModel.setSample(x - sampleModelTranslateX, y - sampleModelTranslateY, b, s, - dataBuffer); - } - - /** - * Sets the sample for the specified band and the specified pixel with an - * integer sample. - * - * @param x - * the X coordinate of the pixel. - * @param y - * the Y coordinate of the pixel. - * @param b - * the specified band. - * @param s - * the sample to be set. - */ - public void setSample(int x, int y, int b, double s) { - sampleModel.setSample(x - sampleModelTranslateX, y - sampleModelTranslateY, b, s, - dataBuffer); - } - -} |