diff options
Diffstat (limited to 'awt/java/awt/image/BufferedImage.java')
-rw-r--r-- | awt/java/awt/image/BufferedImage.java | 952 |
1 files changed, 0 insertions, 952 deletions
diff --git a/awt/java/awt/image/BufferedImage.java b/awt/java/awt/image/BufferedImage.java deleted file mode 100644 index c9d58d9..0000000 --- a/awt/java/awt/image/BufferedImage.java +++ /dev/null @@ -1,952 +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 com.android.internal.awt.AndroidGraphics2D; - -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.GraphicsEnvironment; -import java.awt.Image; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.Transparency; -import java.awt.color.ColorSpace; -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.Vector; - -import org.apache.harmony.awt.gl.ImageSurface; -import org.apache.harmony.awt.gl.Surface; -import org.apache.harmony.awt.gl.image.BufferedImageSource; -import org.apache.harmony.awt.internal.nls.Messages; - -/** - * The BufferedImage class describes an Image which contains a buffer of image - * data and includes a ColorModel and a Raster for this data. This class - * provides methods for obtaining and setting the Raster and for manipulating - * the ColorModel parameters. - * - * @since Android 1.0 - */ -public class BufferedImage extends Image implements WritableRenderedImage, Transparency { - - /** - * The Constant TYPE_CUSTOM indicates that Image type is unknown. - */ - public static final int TYPE_CUSTOM = 0; - - /** - * The Constant TYPE_INT_RGB indicates an image with 8 bit RGB color - * components, it has a DirectColorModel without alpha. - */ - public static final int TYPE_INT_RGB = 1; - - /** - * The Constant TYPE_INT_ARGB indicates an image with 8 bit RGBA color - * components, it has a DirectColorModel with alpha. - */ - public static final int TYPE_INT_ARGB = 2; - - /** - * The Constant TYPE_INT_ARGB_PRE indicates an image with 8 bit RGBA color - * components, it has a DirectColorModel with alpha, and image data is - * pre-multiplied by alpha. - */ - public static final int TYPE_INT_ARGB_PRE = 3; - - /** - * The Constant TYPE_INT_BGR indicates an image with 8 bit RGB color - * components, BGR color model (with the colors Blue, Green, and Red). There - * is no alpha. The image has a DirectColorModel. - */ - public static final int TYPE_INT_BGR = 4; - - /** - * The Constant TYPE_3BYTE_BGR indicates an image with 8 bit RGB color - * components, BGR color model (with the colors Blue, Green, and Red stored - * in 3 bytes). There is no alpha. The image has a ComponentColorModel. - */ - public static final int TYPE_3BYTE_BGR = 5; - - /** - * The Constant TYPE_4BYTE_ABGR indicates an image with 8 bit RGBA color - * components stored in 3 bytes and 1 byte of alpha. It has a - * ComponentColorModel with alpha. - */ - public static final int TYPE_4BYTE_ABGR = 6; - - /** - * The Constant TYPE_4BYTE_ABGR_PRE indicates an image with 8 bit RGBA color - * components stored in 3 bytes and 1 byte for alpha. The image has a - * ComponentColorModel with alpha. The color data is pre-multiplied with - * alpha. - */ - public static final int TYPE_4BYTE_ABGR_PRE = 7; - - /** - * The Constant TYPE_USHORT_565_RGB indicates an image with 565 RGB color - * components (5-bits red, 6-bits green, 5-bits blue) with no alpha. This - * image has a DirectColorModel. - */ - public static final int TYPE_USHORT_565_RGB = 8; - - /** - * The Constant TYPE_USHORT_555_RGB indicates an image with 555 RGB color - * components (5-bits red, 5-bits green, 5-bits blue) with no alpha. This - * image has a DirectColorModel. - */ - public static final int TYPE_USHORT_555_RGB = 9; - - /** - * The Constant TYPE_BYTE_GRAY indicates a unsigned byte image. This image - * has a ComponentColorModel with a CS_GRAY ColorSpace. - */ - public static final int TYPE_BYTE_GRAY = 10; - - /** - * The Constant TYPE_USHORT_GRAY indicates an unsigned short image. This - * image has a ComponentColorModel with a CS_GRAY ColorSpace. - */ - public static final int TYPE_USHORT_GRAY = 11; - - /** - * The Constant TYPE_BYTE_BINARY indicates an opaque byte-packed 1, 2 or 4 - * bit image. The image has an IndexColorModel without alpha. - */ - public static final int TYPE_BYTE_BINARY = 12; - - /** - * The Constant TYPE_BYTE_INDEXED indicates an indexed byte image. - */ - public static final int TYPE_BYTE_INDEXED = 13; - - /** - * The Constant ALPHA_MASK. - */ - private static final int ALPHA_MASK = 0xff000000; - - /** - * The Constant RED_MASK. - */ - private static final int RED_MASK = 0x00ff0000; - - /** - * The Constant GREEN_MASK. - */ - private static final int GREEN_MASK = 0x0000ff00; - - /** - * The Constant BLUE_MASK. - */ - private static final int BLUE_MASK = 0x000000ff; - - /** - * The Constant RED_BGR_MASK. - */ - private static final int RED_BGR_MASK = 0x000000ff; - - /** - * The Constant GREEN_BGR_MASK. - */ - private static final int GREEN_BGR_MASK = 0x0000ff00; - - /** - * The Constant BLUE_BGR_MASK. - */ - private static final int BLUE_BGR_MASK = 0x00ff0000; - - /** - * The Constant RED_565_MASK. - */ - private static final int RED_565_MASK = 0xf800; - - /** - * The Constant GREEN_565_MASK. - */ - private static final int GREEN_565_MASK = 0x07e0; - - /** - * The Constant BLUE_565_MASK. - */ - private static final int BLUE_565_MASK = 0x001f; - - /** - * The Constant RED_555_MASK. - */ - private static final int RED_555_MASK = 0x7c00; - - /** - * The Constant GREEN_555_MASK. - */ - private static final int GREEN_555_MASK = 0x03e0; - - /** - * The Constant BLUE_555_MASK. - */ - private static final int BLUE_555_MASK = 0x001f; - - /** - * The cm. - */ - private ColorModel cm; - - /** - * The raster. - */ - private final WritableRaster raster; - - /** - * The image type. - */ - private final int imageType; - - /** - * The properties. - */ - private Hashtable<?, ?> properties; - - // Surface of the Buffered Image - used for blitting one Buffered Image - // on the other one or on the Component - /** - * The image surf. - */ - private final ImageSurface imageSurf; - - /** - * Instantiates a new BufferedImage with the specified ColorModel, and - * WritableRaster objects. The Raster data can be be divided or multiplied - * by alpha. It depends on the alphaPremultiplied state in the ColorModel. - * - * @param cm - * the ColorModel of the new image. - * @param raster - * the WritableRaster of the new image. - * @param isRasterPremultiplied - * if true the data of the specified Raster is pre-multiplied by - * alpha. - * @param properties - * the properties of new Image. - */ - public BufferedImage(ColorModel cm, WritableRaster raster, boolean isRasterPremultiplied, - Hashtable<?, ?> properties) { - if (!cm.isCompatibleRaster(raster)) { - // awt.4D=The raster is incompatible with this ColorModel - throw new IllegalArgumentException(Messages.getString("awt.4D")); //$NON-NLS-1$ - } - - if (raster.getMinX() != 0 || raster.getMinY() != 0) { - // awt.228=minX or minY of this raster not equal to zero - throw new IllegalArgumentException(Messages.getString("awt.228")); //$NON-NLS-1$ - } - - this.cm = cm; - this.raster = raster; - this.properties = properties; - - coerceData(isRasterPremultiplied); - - imageType = Surface.getType(cm, raster); - - imageSurf = createImageSurface(imageType); - } - - /** - * Instantiates a new BufferedImage with the specified width, height - * predefined image type (TYPE_BYTE_BINARY or TYPE_BYTE_INDEXED) and the - * specified IndexColorModel. - * - * @param width - * the width of new image. - * @param height - * the height of new image. - * @param imageType - * the predefined image type. - * @param cm - * the specified IndexColorModel. - */ - public BufferedImage(int width, int height, int imageType, IndexColorModel cm) { - switch (imageType) { - case TYPE_BYTE_BINARY: - if (cm.hasAlpha()) { - // awt.227=This image type can't have alpha - throw new IllegalArgumentException(Messages.getString("awt.227")); //$NON-NLS-1$ - } - int pixel_bits = 0; - int mapSize = cm.getMapSize(); - if (mapSize <= 2) { - pixel_bits = 1; - } else if (mapSize <= 4) { - pixel_bits = 2; - } else if (mapSize <= 16) { - pixel_bits = 4; - } else { - // awt.221=The imageType is TYPE_BYTE_BINARY and the color - // map has more than 16 entries - throw new IllegalArgumentException(Messages.getString("awt.221")); //$NON-NLS-1$ - } - - raster = Raster.createPackedRaster(DataBuffer.TYPE_BYTE, width, height, 1, - pixel_bits, null); - break; - - case TYPE_BYTE_INDEXED: - raster = Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, width, height, 1, - null); - break; - - default: - // awt.222=The imageType is not TYPE_BYTE_BINARY or - // TYPE_BYTE_INDEXED - throw new IllegalArgumentException(Messages.getString("awt.222")); //$NON-NLS-1$ - - } - - if (!cm.isCompatibleRaster(raster)) { - // awt.223=The imageType is not compatible with ColorModel - throw new IllegalArgumentException(Messages.getString("awt.223")); //$NON-NLS-1$ - } - - this.cm = cm; - this.imageType = imageType; - imageSurf = createImageSurface(imageType); - - } - - /** - * Instantiates a new BufferedImage with the specified width, height and - * predefined image type. - * - * @param width - * the width of new image. - * @param height - * the height of new image. - * @param imageType - * the predefined image type. - */ - public BufferedImage(int width, int height, int imageType) { - - switch (imageType) { - case TYPE_INT_RGB: - cm = new DirectColorModel(24, RED_MASK, GREEN_MASK, BLUE_MASK); - raster = cm.createCompatibleWritableRaster(width, height); - break; - - case TYPE_INT_ARGB: - cm = ColorModel.getRGBdefault(); - raster = cm.createCompatibleWritableRaster(width, height); - break; - - case TYPE_INT_ARGB_PRE: - cm = new DirectColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), 32, RED_MASK, - GREEN_MASK, BLUE_MASK, ALPHA_MASK, true, DataBuffer.TYPE_INT); - - raster = cm.createCompatibleWritableRaster(width, height); - break; - - case TYPE_INT_BGR: - cm = new DirectColorModel(24, RED_BGR_MASK, GREEN_BGR_MASK, BLUE_BGR_MASK); - - raster = cm.createCompatibleWritableRaster(width, height); - break; - - case TYPE_3BYTE_BGR: { - int bits[] = { - 8, 8, 8 - }; - int bandOffsets[] = { - 2, 1, 0 - }; - cm = new ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), bits, - false, false, Transparency.OPAQUE, DataBuffer.TYPE_BYTE); - - raster = Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, width, height, - width * 3, 3, bandOffsets, null); - } - break; - - case TYPE_4BYTE_ABGR: { - int bits[] = { - 8, 8, 8, 8 - }; - int bandOffsets[] = { - 3, 2, 1, 0 - }; - cm = new ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), bits, - true, false, Transparency.TRANSLUCENT, DataBuffer.TYPE_BYTE); - - raster = Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, width, height, - width * 4, 4, bandOffsets, null); - } - break; - - case TYPE_4BYTE_ABGR_PRE: { - int bits[] = { - 8, 8, 8, 8 - }; - int bandOffsets[] = { - 3, 2, 1, 0 - }; - cm = new ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), bits, - true, true, Transparency.TRANSLUCENT, DataBuffer.TYPE_BYTE); - - raster = Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, width, height, - width * 4, 4, bandOffsets, null); - } - break; - - case TYPE_USHORT_565_RGB: - cm = new DirectColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), 16, - RED_565_MASK, GREEN_565_MASK, BLUE_565_MASK, 0, false, - DataBuffer.TYPE_USHORT); - - raster = cm.createCompatibleWritableRaster(width, height); - break; - - case TYPE_USHORT_555_RGB: - cm = new DirectColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), 15, - RED_555_MASK, GREEN_555_MASK, BLUE_555_MASK, 0, false, - DataBuffer.TYPE_USHORT); - - raster = cm.createCompatibleWritableRaster(width, height); - break; - - case TYPE_BYTE_GRAY: { - int bits[] = { - 8 - }; - cm = new ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_GRAY), bits, - false, false, Transparency.OPAQUE, DataBuffer.TYPE_BYTE); - - raster = cm.createCompatibleWritableRaster(width, height); - } - break; - - case TYPE_USHORT_GRAY: { - int bits[] = { - 16 - }; - cm = new ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_GRAY), bits, - false, false, Transparency.OPAQUE, DataBuffer.TYPE_USHORT); - raster = cm.createCompatibleWritableRaster(width, height); - } - break; - - case TYPE_BYTE_BINARY: { - int colorMap[] = { - 0, 0xffffff - }; - cm = new IndexColorModel(1, 2, colorMap, 0, false, -1, DataBuffer.TYPE_BYTE); - - raster = Raster.createPackedRaster(DataBuffer.TYPE_BYTE, width, height, 1, 1, null); - } - break; - - case TYPE_BYTE_INDEXED: { - int colorMap[] = new int[256]; - int i = 0; - for (int r = 0; r < 256; r += 51) { - for (int g = 0; g < 256; g += 51) { - for (int b = 0; b < 256; b += 51) { - colorMap[i] = (r << 16) | (g << 8) | b; - i++; - } - } - } - - int gray = 0x12; - for (; i < 256; i++, gray += 6) { - colorMap[i] = (gray << 16) | (gray << 8) | gray; - } - cm = new IndexColorModel(8, 256, colorMap, 0, false, -1, DataBuffer.TYPE_BYTE); - raster = Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, width, height, 1, - null); - - } - break; - default: - // awt.224=Unknown image type - throw new IllegalArgumentException(Messages.getString("awt.224")); //$NON-NLS-1$ - } - this.imageType = imageType; - imageSurf = createImageSurface(imageType); - } - - @Override - public Object getProperty(String name, ImageObserver observer) { - return getProperty(name); - } - - public Object getProperty(String name) { - if (name == null) { - // awt.225=Property name is null - throw new NullPointerException(Messages.getString("awt.225")); //$NON-NLS-1$ - } - if (properties == null) { - return Image.UndefinedProperty; - } - Object property = properties.get(name); - if (property == null) { - property = Image.UndefinedProperty; - } - return property; - } - - public WritableRaster copyData(WritableRaster outRaster) { - if (outRaster == null) { - outRaster = Raster.createWritableRaster(raster.getSampleModel(), new Point(raster - .getSampleModelTranslateX(), raster.getSampleModelTranslateY())); - } - - int w = outRaster.getWidth(); - int h = outRaster.getHeight(); - int minX = outRaster.getMinX(); - int minY = outRaster.getMinY(); - - Object data = null; - - data = raster.getDataElements(minX, minY, w, h, data); - outRaster.setDataElements(minX, minY, w, h, data); - - return outRaster; - } - - public Raster getData(Rectangle rect) { - int minX = rect.x; - int minY = rect.y; - int w = rect.width; - int h = rect.height; - - SampleModel sm = raster.getSampleModel(); - SampleModel nsm = sm.createCompatibleSampleModel(w, h); - WritableRaster outr = Raster.createWritableRaster(nsm, rect.getLocation()); - Object data = null; - - data = raster.getDataElements(minX, minY, w, h, data); - outr.setDataElements(minX, minY, w, h, data); - return outr; - } - - public Vector<RenderedImage> getSources() { - return null; - } - - public String[] getPropertyNames() { - if (properties == null) { - return null; - } - Vector<String> v = new Vector<String>(); - for (Enumeration<?> e = properties.keys(); e.hasMoreElements();) { - try { - v.add((String)e.nextElement()); - } catch (ClassCastException ex) { - } - } - int size = v.size(); - if (size > 0) { - String names[] = new String[size]; - for (int i = 0; i < size; i++) { - names[i] = v.elementAt(i); - } - return names; - } - return null; - } - - /** - * Returns the string representation of this BufferedImage object. - * - * @return the string representation of this BufferedImage object. - */ - @Override - public String toString() { - return "BufferedImage@" + Integer.toHexString(hashCode()) + //$NON-NLS-1$ - ": type = " + imageType + " " + cm + " " + raster; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - } - - public WritableRaster getWritableTile(int tileX, int tileY) { - return raster; - } - - /** - * Gets the WritableRaster of this BufferedImage. - * - * @return the WritableRaster of this BufferedImage. - */ - public WritableRaster getRaster() { - return raster; - } - - /** - * Gets a WritableRaster object which contains the alpha channel of - * BufferedImage object with ColorModel objects that supports a separate - * alpha channel such as ComponentColorModel or DirectColorModel. - * - * @return the WritableRaster object which contains the alpha channel of - * this BufferedImage. - */ - public WritableRaster getAlphaRaster() { - return cm.getAlphaRaster(raster); - } - - public void removeTileObserver(TileObserver to) { - } - - public void addTileObserver(TileObserver to) { - } - - public SampleModel getSampleModel() { - return raster.getSampleModel(); - } - - public void setData(Raster r) { - - Rectangle from = r.getBounds(); - Rectangle to = raster.getBounds(); - Rectangle intersection = to.intersection(from); - - int minX = intersection.x; - int minY = intersection.y; - int w = intersection.width; - int h = intersection.height; - - Object data = null; - - data = r.getDataElements(minX, minY, w, h, data); - raster.setDataElements(minX, minY, w, h, data); - } - - public Raster getTile(int tileX, int tileY) { - if (tileX == 0 && tileY == 0) { - return raster; - } - // awt.226=Both tileX and tileY are not equal to 0 - throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.226")); //$NON-NLS-1$ - } - - public Raster getData() { - int w = raster.getWidth(); - int h = raster.getHeight(); - int minX = raster.getMinX(); - int minY = raster.getMinY(); - - WritableRaster outr = Raster.createWritableRaster(raster.getSampleModel(), new Point(raster - .getSampleModelTranslateX(), raster.getSampleModelTranslateY())); - - Object data = null; - - data = raster.getDataElements(minX, minY, w, h, data); - outr.setDataElements(minX, minY, w, h, data); - - return outr; - } - - @Override - public ImageProducer getSource() { - return new BufferedImageSource(this, properties); - } - - @Override - public int getWidth(ImageObserver observer) { - return raster.getWidth(); - } - - @Override - public int getHeight(ImageObserver observer) { - return raster.getHeight(); - } - - public ColorModel getColorModel() { - return cm; - } - - /** - * Gets the rectangular area of this BufferedImage as a subimage. - * - * @param x - * the x coordinate. - * @param y - * the y coordinate. - * @param w - * the width of the subimage. - * @param h - * the height of the subimage. - * @return the BufferedImage. - */ - public BufferedImage getSubimage(int x, int y, int w, int h) { - WritableRaster wr = raster.createWritableChild(x, y, w, h, 0, 0, null); - return new BufferedImage(cm, wr, cm.isAlphaPremultiplied(), properties); - } - - public Point[] getWritableTileIndices() { - Point points[] = new Point[1]; - points[0] = new Point(0, 0); - return points; - } - - /** - * Creates the Graphics2D object which allows to draw into this - * BufferedImage. - * - * @return the graphics2D object. - */ - public Graphics2D createGraphics() { - GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); - // return ge.createGraphics(this); - // ???AWT hack, FIXME - // return AndroidGraphics2D.getInstance(); - // throw new RuntimeException("Not implemented!"); - return null; - } - - @Override - public Graphics getGraphics() { - return createGraphics(); - } - - /** - * Coerces the data to achieve the state which is specified by the - * isAlphaPremultiplied variable. - * - * @param isAlphaPremultiplied - * the is alpha pre-multiplied state. - */ - public void coerceData(boolean isAlphaPremultiplied) { - if (cm.hasAlpha() && cm.isAlphaPremultiplied() != isAlphaPremultiplied) { - cm = cm.coerceData(raster, isAlphaPremultiplied); - } - } - - /** - * Gets an array of colors in the TYPE_INT_ARGB color model and default sRGB - * color space of the specified area of this BufferedImage. The result array - * is composed by the following algorithm: - * <p> - * pixel = rgbArray[offset + (y-startY)*scansize + (x-startX)] - * </p> - * - * @param startX - * the start X area coordinate. - * @param startY - * the start Y area coordinate. - * @param w - * the width of the area. - * @param h - * the height of the area. - * @param rgbArray - * the result array will be stored to this array. - * @param offset - * the offset of the rgbArray array. - * @param scansize - * the scanline stride for the rgbArray. - * @return an array of colors for the specified area. - */ - public int[] getRGB(int startX, int startY, int w, int h, int[] rgbArray, int offset, - int scansize) { - if (rgbArray == null) { - rgbArray = new int[offset + h * scansize]; - } - - int off = offset; - for (int y = startY; y < startY + h; y++, off += scansize) { - int i = off; - for (int x = startX; x < startX + w; x++, i++) { - rgbArray[i] = cm.getRGB(raster.getDataElements(x, y, null)); - } - } - return rgbArray; - } - - /** - * Sets RGB values from the specified array to the specified BufferedImage - * area. The pixels are in the default RGB color model (TYPE_INT_ARGB) and - * default sRGB color space. - * - * @param startX - * the start X coordinate. - * @param startY - * the start Y coordinate. - * @param w - * the width of the BufferedImage area. - * @param h - * the height of the BufferedImage area. - * @param rgbArray - * the array of RGB values. - * @param offset - * the offset of the rgbArray array. - * @param scansize - * the scanline stride for the rgbArray. - */ - public void setRGB(int startX, int startY, int w, int h, int[] rgbArray, int offset, - int scansize) { - int off = offset; - for (int y = startY; y < startY + h; y++, off += scansize) { - int i = off; - for (int x = startX; x < startX + w; x++, i++) { - raster.setDataElements(x, y, cm.getDataElements(rgbArray[i], null)); - } - } - } - - /** - * Sets a the specified RGB value to the specified pixel of this - * BufferedImage. The pixel should be in the default RGB color model - * (TYPE_INT_ARGB) and default sRGB color space. - * - * @param x - * the X coordinate of the pixel. - * @param y - * the Y coordinate of the pixel. - * @param rgb - * the RGB value to be set. - */ - public synchronized void setRGB(int x, int y, int rgb) { - raster.setDataElements(x, y, cm.getDataElements(rgb, null)); - } - - public boolean isTileWritable(int tileX, int tileY) { - if (tileX == 0 && tileY == 0) { - return true; - } - // awt.226=Both tileX and tileY are not equal to 0 - throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.226")); //$NON-NLS-1$ - } - - public void releaseWritableTile(int tileX, int tileY) { - } - - /** - * Gets a color in the TYPE_INT_ARGB color model and default sRGB color - * space of the specified pixel. - * - * @param x - * the X coordinate of the pixel. - * @param y - * the Y coordinate of the pixel. - * @return the color of the specified pixel in the TYPE_INT_ARGB color model - * and default sRGB color space. - */ - public int getRGB(int x, int y) { - return cm.getRGB(raster.getDataElements(x, y, null)); - } - - /** - * Returns true if alpha is pre-multiplied, false if alpha is not - * pre-multiplied or there is no alpha. - * - * @return true if alpha is pre-multiplied, false if alpha is not - * pre-multiplied or there is no alpha. - */ - public boolean isAlphaPremultiplied() { - return cm.isAlphaPremultiplied(); - } - - public boolean hasTileWriters() { - return true; - } - - @Override - public void flush() { - imageSurf.dispose(); - } - - public int getWidth() { - return raster.getWidth(); - } - - /** - * Gets the image type. - * - * @return the image type. - */ - public int getType() { - return imageType; - } - - public int getTileWidth() { - return raster.getWidth(); - } - - public int getTileHeight() { - return raster.getHeight(); - } - - public int getTileGridYOffset() { - return raster.getSampleModelTranslateY(); - } - - public int getTileGridXOffset() { - return raster.getSampleModelTranslateX(); - } - - public int getNumYTiles() { - return 1; - } - - public int getNumXTiles() { - return 1; - } - - public int getMinY() { - return raster.getMinY(); - } - - public int getMinX() { - return raster.getMinX(); - } - - public int getMinTileY() { - return 0; - } - - public int getMinTileX() { - return 0; - } - - public int getHeight() { - return raster.getHeight(); - } - - /** - * Creates the image surface. - * - * @param type - * the type. - * @return the image surface. - */ - private ImageSurface createImageSurface(int type) { - return new ImageSurface(getColorModel(), getRaster(), type); - } - - /** - * Gets the image surface. - * - * @return the image surface. - */ - ImageSurface getImageSurface() { - return imageSurf; - } - - public int getTransparency() { - return cm.getTransparency(); - } -} |