public class PixelGrabber extends Object implements ImageConsumer
public void handlesinglepixel(int x, int y, int pixel) {
int alpha = (pixel >> 24) & 0xff;
int red = (pixel >> 16) & 0xff;
int green = (pixel >> 8) & 0xff;
int blue = (pixel ) & 0xff;
// Deal with the pixel as necessary...
}
public void handlepixels(Image img, int x, int y, int w, int h) {
int[] pixels = new int[w * h];
PixelGrabber pg = new PixelGrabber(img, x, y, w, h, pixels, 0, w);
try {
pg.grabPixels();
} catch (InterruptedException e) {
System.err.println("interrupted waiting for pixels!");
return;
}
if ((pg.getStatus() & ImageObserver.ABORT) != 0) {
System.err.println("image fetch aborted or errored");
return;
}
for (int j = 0; j < h; j++) {
for (int i = 0; i < w; i++) {
handlesinglepixel(x+i, y+j, pixels[j * w + i]);
}
}
}
COMPLETESCANLINES, IMAGEABORTED, IMAGEERROR, RANDOMPIXELORDER, SINGLEFRAME, SINGLEFRAMEDONE, SINGLEPASS, STATICIMAGEDONE, TOPDOWNLEFTRIGHT| コンストラクタと説明 |
|---|
PixelGrabber(Image img, int x, int y, int w, int h, boolean forceRGB)
指定されたイメージからピクセルの矩形部分 (x, y, w, h) を取り出す、PixelGrabber オブジェクトを生成します。
|
PixelGrabber(Image img, int x, int y, int w, int h, int[] pix, int off, int scansize)
指定されたイメージからピクセルの矩形部分 (x, y, w, h) を指定の配列に取り出す、PixelGrabber オブジェクトを生成します。
|
PixelGrabber(ImageProducer ip, int x, int y, int w, int h, int[] pix, int off, int scansize)
指定された ImageProducer が生成するイメージからピクセルの矩形部分 (x, y, w, h) を指定の配列に取り出す、PixelGrabber オブジェクトを生成します。
|
| 修飾子と型 | メソッドと説明 |
|---|---|
void |
abortGrabbing()
PixelGrabber にイメージの取り込み中止を要求します。
|
ColorModel |
getColorModel()
ピクセルを配列に格納するための ColorModel を返します。
|
int |
getHeight()
(イメージの高さを調整後) ピクセルバッファーの高さを返します。
|
Object |
getPixels()
ピクセルバッファーを返します。
|
int |
getStatus()
ピクセルのステータスを返します。
|
int |
getWidth()
(イメージの幅を調整後) ピクセルバッファーの幅を返します。
|
boolean |
grabPixels()
Image または ImageProducer に、ピクセルの転送を開始し、転送を要求された矩形のピクセルがすべて転送されるまで待つことを要求します。
|
boolean |
grabPixels(long ms)
ピクセルの転送を開始するよう Image または ImageProducer に要求し、目的の矩形のピクセルがすべて転送されるまで、または指定された時間が経過するまで待ちます。
|
void |
imageComplete(int status)
imageComplete メソッドは、ピクセルを取り出すためにこのクラスが実装しなければならない ImageConsumer API の一部です。
|
void |
setColorModel(ColorModel model)
setColorModel メソッドは、ピクセルを取り出すためにこのクラスが実装しなければならない ImageConsumer API の一部です。
|
void |
setDimensions(int width, int height)
setDimensions メソッドは、ピクセルを取り出すためにこのクラスが実装しなければならない ImageConsumer API の一部です。
|
void |
setHints(int hints)
setHints メソッドは、ピクセルを取り出すためにこのクラスが実装しなければならない ImageConsumer API の一部です。
|
void |
setPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, byte[] pixels, int srcOff, int srcScan)
setPixels メソッドは、ピクセルを取り出すためにこのクラスが実装しなければならない ImageConsumer API の一部です。
|
void |
setPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, int[] pixels, int srcOff, int srcScan)
setPixels メソッドは、ピクセルを取り出すためにこのクラスが実装しなければならない ImageConsumer API の一部です。
|
void |
setProperties(Hashtable<?,?> props)
setProperties メソッドは、ピクセルを取り出すためにこのクラスが実装しなければならない ImageConsumer API の一部です。
|
void |
startGrabbing()
PixelGrabber にピクセルの取り込み開始を要求します。
|
int |
status()
ピクセルのステータスを返します。
|
public PixelGrabber(Image img, int x, int y, int w, int h, int[] pix, int off, int scansize)
img - ピクセルの取得元イメージx - イメージから取得するピクセルの矩形の左上隅の x 座標。イメージのデフォルト (スケーリングされていない) サイズを基準にするy - イメージから取得するピクセルの矩形の左上隅の y 座標w - 取得するピクセルの矩形の幅h - 取得するピクセルの矩形の高さpix - イメージから取得した RGB ピクセルの格納に使用する整数配列off - 最初のピクセルを配列のどこに格納するかを表すオフセットscansize - 配列内のあるピクセル行から次のピクセル行までの距離ColorModel.getRGBdefault()public PixelGrabber(ImageProducer ip, int x, int y, int w, int h, int[] pix, int off, int scansize)
ip - ピクセルを取得するイメージを生成する ImageProducerx - イメージから取得するピクセルの矩形の左上隅の x 座標。イメージのデフォルト (スケーリングされていない) サイズを基準にするy - イメージから取得するピクセルの矩形の左上隅の y 座標w - 取得するピクセルの矩形の幅h - 取得するピクセルの矩形の高さpix - イメージから取得した RGB ピクセルの格納に使用する整数配列off - 最初のピクセルを配列のどこに格納するかを表すオフセットscansize - 配列内のあるピクセル行から次のピクセル行までの距離ColorModel.getRGBdefault()public PixelGrabber(Image img, int x, int y, int w, int h, boolean forceRGB)
img - イメージデータの取得元イメージx - イメージから取得するピクセルの矩形の左上隅の x 座標。イメージのデフォルト (スケーリングされていない) サイズを基準にするy - イメージから取得するピクセルの矩形の左上隅の y 座標w - 取得するピクセルの矩形の幅h - 取得するピクセルの矩形の高さforceRGB - ピクセルをデフォルト RGB ColorModel に常に変換する場合は truepublic void startGrabbing()
public void abortGrabbing()
public boolean grabPixels()
throws InterruptedException
InterruptedException - ほかのスレッドがこのスレッドを中断した場合。public boolean grabPixels(long ms)
throws InterruptedException
ms の値によって、次のように動作します。
ms == 0 の場合、全ピクセルが転送されるまで待つ
ms > 0 の場合、指定された時間が経過しても全ピクセルが転送されるまで待つ。
ms < 0 の場合、ピクセルがすべて取得できた場合は true、そうでない場合は false を返し、待たない。
ms - イメージのピクセルが取得を待つ時間 (ミリ秒)。これを経過した場合はタイムアウトになるInterruptedException - ほかのスレッドがこのスレッドを中断した場合。public int getStatus()
ImageObserverpublic int getWidth()
getStatus()public int getHeight()
getStatus()public Object getPixels()
public ColorModel getColorModel()
getStatus(), ColorModel.getRGBdefault(), setColorModel(ColorModel)public void setDimensions(int width,
int height)
注:このメソッドは、取り出し対象のピクセルで構成される Image の ImageProducer によって呼び出されることを意図して実装されています。このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。
setDimensions、インタフェース: ImageConsumerwidth - この Dimension の幅height - この Dimension の高さpublic void setHints(int hints)
注:このメソッドは、取り出し対象のピクセルで構成される Image の ImageProducer によって呼び出されることを意図して実装されています。このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。
setHints、インタフェース: ImageConsumerhints - ピクセル処理に使用されるヒントセットpublic void setProperties(Hashtable<?,?> props)
注:このメソッドは、取り出し対象のピクセルで構成される Image の ImageProducer によって呼び出されることを意図して実装されています。このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。
setProperties、インタフェース: ImageConsumerprops - プロパティーのリストpublic void setColorModel(ColorModel model)
注:このメソッドは、取り出し対象のピクセルで構成される Image の ImageProducer によって呼び出されることを意図して実装されています。このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。
setColorModel、インタフェース: ImageConsumermodel - 指定されたColorModelgetColorModel()public void setPixels(int srcX,
int srcY,
int srcW,
int srcH,
ColorModel model,
byte[] pixels,
int srcOff,
int srcScan)
注:このメソッドは、取り出し対象のピクセルで構成される Image の ImageProducer によって呼び出されることを意図して実装されています。このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。
setPixels、インタフェース: ImageConsumersrcX - 設定されるピクセルの領域の左上隅の X 座標srcY - 設定されるピクセルの領域の左上隅の Y 座標srcW - ピクセル領域の幅srcH - ピクセル領域の高さmodel - 指定されたColorModelpixels - ピクセルの配列srcOff - pixels 配列のオフセットsrcScan - pixels 配列内のあるピクセル行から次のピクセル行までの距離getPixels()public void setPixels(int srcX,
int srcY,
int srcW,
int srcH,
ColorModel model,
int[] pixels,
int srcOff,
int srcScan)
注:このメソッドは、取り出し対象のピクセルで構成される Image の ImageProducer によって呼び出されることを意図して実装されています。このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。
setPixels、インタフェース: ImageConsumersrcX - 設定されるピクセルの領域の左上隅の X 座標srcY - 設定されるピクセルの領域の左上隅の Y 座標srcW - ピクセル領域の幅srcH - ピクセル領域の高さmodel - 指定されたColorModelpixels - ピクセルの配列srcOff - pixels 配列のオフセットsrcScan - pixels 配列内のあるピクセル行から次のピクセル行までの距離getPixels()public void imageComplete(int status)
注:このメソッドは、取り出し対象のピクセルで構成される Image の ImageProducer によって呼び出されることを意図して実装されています。このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。
imageComplete、インタフェース: ImageConsumerstatus - イメージロードのステータスImageProducer.removeConsumer(java.awt.image.ImageConsumer)public int status()
getStatus は同じ実装を持っていますが、「getXXX」という形式を持つ情報取得メソッドの命名規則に従う getStatus メソッドの使用をお勧めします。ImageObserver、getStatus() バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.