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