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
- ピクセルを取得するイメージを生成するImageProducer
x
- イメージから取得するピクセルの矩形の左上隅の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)
(w < 0)
または(h < 0)
の場合は、情報が転送されるときの残りのソース・データの幅と高さがデフォルトになります。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()
ImageObserver
public 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
、インタフェース: ImageConsumer
width
- このDimensionの幅height
- このDimensionの高さpublic void setHints(int hints)
注: このメソッドは、取出し対象のピクセルで構成されるImageのImageProducerによって呼び出されることを意図して実装されています。このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。
setHints
、インタフェース: ImageConsumer
hints
- ピクセル処理に使用されるヒント・セットpublic void setProperties(Hashtable<?,?> props)
注: このメソッドは、取出し対象のピクセルで構成されるImageのImageProducerによって呼び出されることを意図して実装されています。このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。
setProperties
、インタフェース: ImageConsumer
props
- プロパティのリストpublic void setColorModel(ColorModel model)
注: このメソッドは、取出し対象のピクセルで構成されるImageのImageProducerによって呼び出されることを意図して実装されています。このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。
setColorModel
、インタフェース: ImageConsumer
model
- 指定されたColorModel
getColorModel()
public void setPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, byte[] pixels, int srcOff, int srcScan)
注: このメソッドは、取出し対象のピクセルで構成されるImageのImageProducerによって呼び出されることを意図して実装されています。このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。
setPixels
、インタフェース: ImageConsumer
srcX
- 設定されるピクセルの領域の左上隅のX座標srcY
- 設定されるピクセルの領域の左上隅のY座標srcW
- ピクセル領域の幅srcH
- ピクセル領域の高さmodel
- 指定されたColorModel
pixels
- ピクセルの配列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
、インタフェース: ImageConsumer
srcX
- 設定されるピクセルの領域の左上隅のX座標srcY
- 設定されるピクセルの領域の左上隅のY座標srcW
- ピクセル領域の幅srcH
- ピクセル領域の高さmodel
- 指定されたColorModel
pixels
- ピクセルの配列srcOff
- pixels配列のオフセットsrcScan
- pixels配列内のあるピクセル行から次のピクセル行までの距離getPixels()
public void imageComplete(int status)
注: このメソッドは、取出し対象のピクセルで構成されるImageのImageProducerによって呼び出されることを意図して実装されています。このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。
imageComplete
、インタフェース: ImageConsumer
status
- イメージ・ロードのステータスImageProducer.removeConsumer(java.awt.image.ImageConsumer)
public int status()
getStatus
は同じ実装を持っていますが、「getXXX」という形式を持つ情報取得メソッドの命名規則に従うgetStatus
メソッドの使用をお薦めします。ImageObserver
、getStatus()
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2016, Oracle and/or its affiliates. All rights reserved.Use is subject to license termsDocumentation Redistribution Policyも参照してください。