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