PixelGrabber クラス
- [内容]
- Image オブジェクトや ImageProducer オブジェクトと接続して,そのイメージのピクセルのサブセットを抽出可能な ImageConsumer を実装します.ImageConsumer は,ImageProducer インタフェース経由でイメージデータを表示するオブジェクトのためのインタフェースです.コンシューマがイメージプロデューサに追加されると,プロデューサはこのインタフェースで定義されたメソッドを呼び出すことによってイメージデータを転送します.また,ImageProducer は,Image オブジェクト用のイメージデータを生成することができるオブジェクトのためのインタフェースです.イメージには ImageProducer が含まれます.ImageProducer は,イメージの再構成が必要なとき,たとえば,Image の大きさの変更や Image の高さや幅が必要なときなどに使われます.
- [コンストラクタ]
- public PixelGrabber(Image img, int x, int y, int w, int h, int[] pix, int off, int scansize)
- 指定されたイメージからピクセルの矩形部分 (x, y, w, h) を指定された配列に取り出す PixelGrabber オブジェクトを生成します.ピクセルは,デフォルトの RGB ColorModel で配列に格納されます.(i, j) が矩形 (x, y, w, h) の内部に位置するピクセル (i, j) の RGB データは,pix[(j - y) * scansize + (i - x) + off] の配列に格納されます.
- img - ピクセルの取得元イメージ
- x - イメージから取得するピクセルの矩形の左上隅の x 座標.イメージのデフォルト (スケーリングされていない) サイズを基準にする
- y - イメージから取り出すピクセルの矩形の左上隅の y 座標
- w - 取得するピクセルの矩形の幅
- h - 取得するピクセルの矩形の高さ
- pix - イメージから取得した RGB ピクセルの保持に使用する整数配列
- off - 最初のピクセルを配列のどこに格納するかを表すオフセット
- scansize - 配列上でのピクセルの 1 列の大きさ
- [主なメソッド]
- public int getHeight()
- ピクセルバッファの高さを返す
- public int getWidth()
- ピクセルバッファの幅を返す
- public Object getPixels()
- ピクセルバッファを返す
- public boolean grabPixels(long ms) throws InterruptedException
- ピクセルの転送を開始するよう Image または ImageProducer に要求し,目的の矩形のピクセルがすべて転送されるまで,または指定された時間が経過するまで待つ
- ms == 0 の場合: 全ピクセルが転送されるまで待つ
- ms > 0 の場合: 指定された時間が経過しても全ピクセルが転送されるまで待つ
- ms < 0 の場合: ピクセルがすべて取得できた場合は true,そうでない場合は false を返し,待たない
- [使用例]
- プログラム例は,ファイルから MediaTracker を利用してイメージを読み込んだ後,指定したピクセルの色を取得し,その色で長方形を描くと共に,色を修正して読み込んだ図形全体を描いた例です.

- [参照]
- Toolkit, MediaTracker, MemoryImageSource, Image