Tuesday, November 4, 2008

BrightImageApplet

import java.applet.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;


public class BrightImageApplet extends Applet
{
Image img;
Image newImage;

public void init()
{

img=getImage(getDocumentBase(),"java.gif");

Scrollbar myScroll = new Scrollbar(Scrollbar.HORIZONTAL,0,1,-255,255);
add(myScroll);

createPicture(0);

myScroll.addAdjustmentListener(new AdjustmentListener(){
public void adjustmentValueChanged(AdjustmentEvent evt){
int x= evt.getValue();
createPicture(x);
repaint();
}
});
}


public void paint(Graphics g){


g.drawImage(img,0,0,this);
g.drawString("origin image",0,130);

g.drawImage(newImage,100,0,this);
g.drawString("bright image",110,130);
}

public void createPicture(int bright){
BrightnessFilter filter=new BrightnessFilter(bright);
newImage=createImage(new FilteredImageSource(
img.getSource(), filter));

}
}

class BrightnessFilter extends RGBImageFilter{

int bright;

public BrightnessFilter(int bright){
this.bright=bright;
}

public int filterRGB(int x, int y, int rgb){
//get R,G,B and alpha component
int alpha=(rgb & 0xff000000);
int red=(rgb & 0xff0000) >>16;
int green=(rgb & 0x00ff00) >>8;
int blue=(rgb & 0x0000ff);

//adjust bright
red=red+bright;
if (red>255) red=255;
if (red<0) red=0;

green=green+bright;
if (green>255) green=255;
if (green<0) green=0;

blue=blue+bright;
if (blue>255) blue=255;
if (blue<0) blue=0;

return (alpha)+(red<<16)+(green<<8)+blue;
}
}