summaryrefslogtreecommitdiffstats
path: root/awt/java/awt/image/RGBImageFilter.java
diff options
context:
space:
mode:
Diffstat (limited to 'awt/java/awt/image/RGBImageFilter.java')
-rw-r--r--awt/java/awt/image/RGBImageFilter.java195
1 files changed, 0 insertions, 195 deletions
diff --git a/awt/java/awt/image/RGBImageFilter.java b/awt/java/awt/image/RGBImageFilter.java
deleted file mode 100644
index f5fe5d9..0000000
--- a/awt/java/awt/image/RGBImageFilter.java
+++ /dev/null
@@ -1,195 +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;
-
-/**
- * The RGBImageFilter class represents a filter which modifies pixels of an
- * image in the default RGB ColorModel.
- *
- * @since Android 1.0
- */
-public abstract class RGBImageFilter extends ImageFilter {
-
- /**
- * The original model is the ColorModel to be replaced by the new model when
- * substituteColorModel is called.
- */
- protected ColorModel origmodel;
-
- /**
- * The new model is the ColorModel with which to replace the original model
- * when substituteColorModel is called.
- */
- protected ColorModel newmodel;
-
- /**
- * The canFilterIndexColorModel indicates if it is acceptable to apply the
- * color filtering of the filterRGB method to the color table entries of an
- * IndexColorModel object.
- */
- protected boolean canFilterIndexColorModel;
-
- /**
- * Instantiates a new RGBImageFilter.
- */
- public RGBImageFilter() {
- }
-
- /**
- * Filters an IndexColorModel object by calling filterRGB function for each
- * entry of IndexColorModel.
- *
- * @param icm
- * the IndexColorModel to be filtered.
- * @return the IndexColorModel.
- */
- public IndexColorModel filterIndexColorModel(IndexColorModel icm) {
- int transferType = icm.getTransferType();
- int bits = icm.getPixelSize();
- int mapSize = icm.getMapSize();
- int colorMap[] = new int[mapSize];
- int filteredColorMap[] = new int[mapSize];
- icm.getRGBs(colorMap);
- int trans = -1;
- boolean hasAlpha = false;
- for (int i = 0; i < mapSize; i++) {
- filteredColorMap[i] = filterRGB(-1, -1, colorMap[i]);
- int alpha = filteredColorMap[i] >>> 24;
- if (alpha != 0xff) {
- if (!hasAlpha) {
- hasAlpha = true;
- }
- if (alpha == 0 && trans < 0) {
- trans = i;
- }
- }
- }
-
- return new IndexColorModel(bits, mapSize, filteredColorMap, 0, hasAlpha, trans,
- transferType);
- }
-
- /**
- * Replaces the original color model and the new one.
- *
- * @param oldcm
- * the old ColorModel.
- * @param newcm
- * the new ColorModel.
- */
- public void substituteColorModel(ColorModel oldcm, ColorModel newcm) {
- origmodel = oldcm;
- newmodel = newcm;
- }
-
- @Override
- public void setColorModel(ColorModel model) {
- if (model instanceof IndexColorModel && canFilterIndexColorModel) {
- IndexColorModel icm = (IndexColorModel)model;
- ColorModel filteredModel = filterIndexColorModel(icm);
- substituteColorModel(model, filteredModel);
- consumer.setColorModel(filteredModel);
- } else {
- consumer.setColorModel(ColorModel.getRGBdefault());
- }
- }
-
- @Override
- public void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off,
- int scansize) {
-
- if (model == null || model == origmodel) {
- consumer.setPixels(x, y, w, h, newmodel, pixels, off, scansize);
- } else {
- int rgbPixels[] = new int[w];
- for (int sy = y, pixelsOff = off; sy < y + h; sy++, pixelsOff += scansize) {
-
- for (int sx = x, idx = 0; sx < x + w; sx++, idx++) {
- rgbPixels[idx] = model.getRGB(pixels[pixelsOff + idx]);
- }
- filterRGBPixels(x, sy, w, 1, rgbPixels, 0, w);
- }
- }
- }
-
- @Override
- public void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off,
- int scansize) {
-
- if (model == null || model == origmodel) {
- consumer.setPixels(x, y, w, h, newmodel, pixels, off, scansize);
- } else {
- int rgbPixels[] = new int[w];
- for (int sy = y, pixelsOff = off; sy < y + h; sy++, pixelsOff += scansize) {
-
- for (int sx = x, idx = 0; sx < x + w; sx++, idx++) {
- rgbPixels[idx] = model.getRGB(pixels[pixelsOff + idx] & 0xff);
- }
- filterRGBPixels(x, sy, w, 1, rgbPixels, 0, w);
- }
- }
- }
-
- /**
- * Filters a region of pixels in the default RGB ColorModel by calling the
- * filterRGB method for them.
- *
- * @param x
- * the X coordinate of region.
- * @param y
- * the Y coordinate of region.
- * @param w
- * the width of region.
- * @param h
- * the height of region.
- * @param pixels
- * the pixels array.
- * @param off
- * the offset of array.
- * @param scansize
- * the distance between rows of pixels in the array.
- */
- public void filterRGBPixels(int x, int y, int w, int h, int[] pixels, int off, int scansize) {
-
- for (int sy = y, lineOff = off; sy < y + h; sy++, lineOff += scansize) {
- for (int sx = x, idx = 0; sx < x + w; sx++, idx++) {
- pixels[lineOff + idx] = filterRGB(sx, sy, pixels[lineOff + idx]);
- }
- }
- consumer.setPixels(x, y, w, h, ColorModel.getRGBdefault(), pixels, off, scansize);
- }
-
- /**
- * Converts a single input pixel in the default RGB ColorModel to a single
- * output pixel.
- *
- * @param x
- * the X pixel's coordinate.
- * @param y
- * the Y pixel's coordinate.
- * @param rgb
- * a pixel in the default RGB color model.
- * @return a filtered pixel in the default RGB color model.
- */
- public abstract int filterRGB(int x, int y, int rgb);
-
-}