import java.applet.*;
import java.awt.*;
import java.awt.image.*;
public class NegativeFilterApplet extends Applet{
Image img;
Image newImg;
public void init(){
img=getImage(getDocumentBase(),"java.gif");
NegativeFilter filter=new NegativeFilter();
newImg=createImage(new FilteredImageSource(
img.getSource(), filter));
}
public void paint(Graphics g){
g.drawImage(img,0,0,this);
g.drawString("origin image",10,150);
g.drawImage(newImg,110,0,this);
g.drawString("negative image",120,150);
}
}
class NegativeFilter extends RGBImageFilter{
public int filterRGB(int x, int y, int rgb){
return (rgb & 0xff000000) + //preserve alpha
(rgb & 0x00ffffff) ^ 0xffffff; //xor R,G,B components
}
}