Image クラス

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

public class Test {
	public static void main (String[] args)
	{
		Win win = new Win("Test Window");
	}
}

class Win extends Frame {
	Toolkit tool;
	int cl[] = new int [4];
	Image l_im, b_im;

	Win (String name)
	{
					// Frameクラスのコンストラクタ(Windowのタイトルを引き渡す)
		super(name);
					// イメージの読み込み
		tool = getToolkit();
		l_im = tool.getImage("image.gif");   // l_im = Toolkit.getDefaultToolkit().getImage("image.gif"); でも良い
					// イメージの読み込み完了を待つ
		MediaTracker trk = new MediaTracker(this);
		trk.addImage(l_im, 0);
		try {
			trk.waitForID(0);
		}
		catch (InterruptedException e) {}
					// ピクセル情報の取得
		get_pixel(50, 70);
					// Windowの大きさ
		setSize(180, 400);
					// Windowの位置(中央)
		Dimension d = tool.getScreenSize();   // ディスプレイの大きさ
		setLocation(d.width / 2 - 90, d.height / 2 - 200);
					// ウィンドウを表示
		setVisible(true);
					// イベントアダプタ
		addWindowListener(new WinEnd());
	}

	/********/
	/* 描画 */
	/********/
	public void paint (Graphics g)
	{
		g.drawImage(l_im, 30, 30, this);

		Color c = new Color(cl[0], cl[1], cl[2], cl[3]);
		g.setColor(c);
		g.fillRect(40, 170, 90, 50);

		g.drawImage(b_im, 30, 250, this);
	}

	/***********************/
	/* ピクセル情報の取得  */
	/*      x,y : 指定位置 */
	/***********************/
	void get_pixel(int x, int y)
	{
		int i1, color, width, height;
		int pixels[];
						// イメージの大きさ
		width  = l_im.getWidth(this);
		height = l_im.getHeight(this);
		pixels = new int[width * height];
						// PixelGrabberの生成
		PixelGrabber pg = new PixelGrabber(l_im, 0, 0, width, height, pixels, 0, width);
		try {
			pg.grabPixels();
		}
		catch (InterruptedException e) {}
						// 指定したピクセルの色を取り出す
		color = pixels[width * (x - 1) + y];
		cl[3] = (color >> 24) & 0xff;   // α
		cl[0] = (color >> 16) & 0xff;   // 赤
		cl[1] = (color >>  8) & 0xff;   // 緑
		cl[2] = (color      ) & 0xff;   // 青
						// 指定したピクセルの色を変更して,その色でイメージ全体を描く
		for (i1 = 0; i1 < width * height; i1++)
			pixels[i1] = 0x00ff0000 | pixels[i1];
		MemoryImageSource mis = new MemoryImageSource(width, height, pixels, 0, width);
		b_im = tool.createImage(mis);
	}

	/************/
	/* 終了処理 */
	/************/
	class WinEnd extends WindowAdapter
	{
		public void windowClosing(WindowEvent e) {
			System.exit(0);
		}
	}
}