public class ReverseColorModel extends ColorModel { ColorModel sourceModel; public ReverseColorModel(ColorModel sourceModel) { super(sourceModel.getPixelSize()); this.sourceModel=sourceModel; } public int getAlpha(int pixel) { return sourceModel.getAlpha(pixel); } public int getRed(int pixel) { return ~sourceModel.getRed(pixel); } public int getGreen(int pixel) { return ~sourceModel.getGreen(pixel); } public int getBlue(int pixel) { return ~sourceModel.getBlue(pixel); } public int getRGB(int pixel) { return (getAlpha(pixel)<<24)+(getRed(pixel)<<16)+(getGreen(pixel)<<8)+getBlue(pixel); } } /* ReverseColorModel.java*/ /*@author:cherami */ /*email:cherami@163.net*/
import java.awt.image.*;
public class ReverseFilter extends RGBImageFilter { public ReverseFilter() { canFilterIndexColorModel=true; } public void setColorModel(ColorModel cm) { substituteColorModel(cm,new ReverseColorModel(cm)); }