//
import java.awt.*;
import java.net.*;
import java.awt.image.*;
public class ImageBuffer
{
public ImageBuffer(int width, int height) {
init(width, height);
}
public ImageBuffer(Image src, Component component) {
try {
MediaTracker mt = new MediaTracker(component);
mt.addImage(src, 1);
mt.waitForAll();
init(src.getWidth(component), src.getHeight(component));
(new PixelGrabber(src,0,0,width,height,pix,0,width)).grabPixels();
}
catch (InterruptedException e) { }
}
public int getWidth() { return width; }
public int getHeight() { return height; }
public int get(int x, int y) {
x = Math.max(0, Math.min(width-1, x));
y = Math.max(0, Math.min(height-1, y));
return pix[x + y * width];
}
public void set(int x, int y, int rgb) {
if (x >= 0 && x < width && y >= 0 && y < height)
pix[x + y * width] = rgb;
}
void init(int w, int h) {
width = w;
height = h;
pix = new int[w * h];
}
public int pix[] = null, width = 0, height = 0;
}