Specialeffekter och spelutveckling
i Java(TM) - Appleten BlueComponent
import java.applet.*;
import java.awt.*;
import java.awt.image.*;
public class bluecomponent extends Applet {
//"blueimage" kommer att hålla reda på
//bilden som vi skapar.
Image blueimage=null;
public void init()
{
//Ladda in bilden (filnamnet finns i
//parametern "image").
MediaTracker tracker=new MediaTracker(this);
Image grayimage
=getImage(getDocumentBase(),getParameter("image"));
tracker.addImage(grayimage,0);
try {tracker.waitForAll();}
catch(InterruptedException e){}
//Skapa en Dimension-objekt som
//har samma dimensioner som
//den inladdade bilden.
Dimension d
=new Dimension(grayimage.getWidth(this),grayimage.getHeight(this));
//Skapa en array som
//är lika stor som bilden.
int pixels[]=new int[d.width*d.height];
int colorvalue;
//Använd PixelGrabber klassen för att
//lagra pixlarna i arrayen "pixels".
PixelGrabber grabber
=new PixelGrabber(grayimage,0,0,d.width,d.height,pixels,0,d.width);
try {grabber.grabPixels();}
catch(InterruptedException e){};
//FOR-slingan sveper igenom
//bilden från vänster till höger.
for (int x=0; x < d.width; x++)
{
//FOR-slingan sveper
//igenom bilden upp och ner.
for (int y=0; y < d.height; y++)
{
//Genom att utföra en OCH-operation
//med 0xff0000ff kommer bara
//alfa-kanalen och blåkomponenten
//att finnas kvar.
pixels[x+y*d.width]=pixels[x+y*d.width]&0xff0000ff;
}
}
//Nu gör vi en ny bild med MemoryImageSource
//och createImage()
MemoryImageSource imgsrc=new MemoryImageSource(d.width,d.height,pixels,0,d.width);
blueimage=createImage(imgsrc);
}
public void paint(Graphics g)
{
if (blueimage!=null) g.drawImage(blueimage,0,0,this);
}
}
|
 |  |
|