Tuesday, November 4, 2008

NegativeFilterApplet

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
}
}