Java で画像を読み込む

Java で画像を扱う方法を示します。

まず、画像ファイルをImage オブジェクトに読み込む方法から。

MediaTracker を使用して、読み終えるのを確認します。
Image image;

    public void readImageFile(String fileName) 
    {
	try
	    {
		image= getToolkit().getImage(fileName);	
		MediaTracker tracker=new MediaTracker(this);
		tracker.addImage(image,0);
		tracker.waitForID(0);
		if(tracker.isErrorAny())
		    {
			throw new Exception();
		    }
	    }
	catch(Exception e){e.printStackTrace();}
    }

画像ファイルを、ピクセルごとに処理したい場合に、配列に読み込む方法です。

PixelGrabber をインスタンス化し、grabPixels() メソッドを呼び出します。

int memory[];
    int imageWidth=0;
    int imageHeight=0;

    void captureImage()
    {
	imageWidth=image.getWidth(this);
	imageHeight=image.getHeight(this);

	memory=new int[imageWidth*imageHeight];
	PixelGrabber pg=
	    new PixelGrabber(image,
	                     0,
                             0,
			     imageWidth,
			     imageHeight,
			     memory,
			     0,
			     imageWidth);
	try
	    {
		pg.grabPixels();
	    }
	catch(Exception e){e.printStackTrace();}

	if(((pg.getStatus())&ABORT)!=0)
	    {
		System.err.println("Can not capture the image");
		return;
	    }
    }

最後に、配列から、画像に変換する方法を示します。

ImageProducer ip=new MemoryImageSource(w,h,memory,0,w);
image=getToolkit().createImage(ip);

inserted by FC2 system