|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.awt.image
类 PixelGrabber
java.lang.Object java.awt.image.PixelGrabber
- 所有已实现的接口:
- ImageConsumer
-
public class PixelGrabber
- extends Object
- implements ImageConsumer
PixelGrabber 类实现可以附加在 Image 或 ImageProducer 对象上以获得该图像像素子集的 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]); } } }
字段摘要 |
---|
从接口 java.awt.image.ImageConsumer 继承的字段 |
---|
COMPLETESCANLINES, IMAGEABORTED, IMAGEERROR, RANDOMPIXELORDER, SINGLEFRAME, SINGLEFRAMEDONE, SINGLEPASS, STATICIMAGEDONE, TOPDOWNLEFTRIGHT |
构造方法摘要 | |
---|---|
PixelGrabber(Image img, int x, int y, int w, int h, boolean forceRGB) 创建一个 PixelGrabber 对象,以便从指定的图像中抓取像素矩形部分 (x, y, w, h)。 |
|
PixelGrabber(Image img, int x, int y, int w, int h, int[] pix, int off, int scansize) 创建一个 PixelGrabber 对象,以便从指定的图像中将像素矩形部分 (x, y, w, h) 抓取到给定的数组中。 |
|
PixelGrabber(ImageProducer ip, int x, int y, int w, int h, int[] pix, int off, int scansize) 创建一个 PixelGrabber 对象,以便从指定 ImageProducer 所生成的图像中将像素矩形部分 (x, y, w, h) 抓取到给定的数组中。 |
方法摘要 | |
---|---|
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() 返回像素的状态返回表示可用像素信息的 ImageObserver 标志。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
PixelGrabber
public PixelGrabber(Image img, int x, int y, int w, int h, int[] pix, int off, int scansize)
-
创建一个 PixelGrabber 对象,以便从指定的图像中将像素矩形部分 (x, y, w, h) 抓取到给定的数组中。以默认的 RGB ColorModel 形式将像素存储到数组中。像素 (i, j)(其中 (i, j) 处于矩形 (x, y, w, h) 内)的 RGB 数据存储在数组中的 pix[(j - y) * scansize + (i - x) + off] 位置处。
- 参数:
-
img
- 从中检索像素的图像 -
x
- 从图像中进行检索的像素矩形左上角 x 坐标,该矩形是相对于默认(未缩放)图像大小的 -
y
- 从图像中进行检索的像素矩形左上角 y 坐标 -
w
- 要检索的像素矩形的宽度 -
h
- 要检索的像素矩形的高度 -
pix
- 用于保存从图像中检索的 RGB 像素的整数数组 -
off
- 数组中存储首个像素的偏移量 -
scansize
- 数组中一行像素到下一行像素之间的距离 - 另请参见:
-
ColorModel.getRGBdefault()
PixelGrabber
public PixelGrabber(ImageProducer ip, int x, int y, int w, int h, int[] pix, int off, int scansize)
-
创建一个 PixelGrabber 对象,以便从指定 ImageProducer 所生成的图像中将像素矩形部分 (x, y, w, h) 抓取到给定的数组中。以默认的 RGB ColorModel 形式将像素存储到数组中。像素 (i, j)(其中 (i, j) 处于矩形 (x, y, w, h) 内)的 RGB 数据存储在数组中的 pix[(j - y) * scansize + (i - x) + off] 位置处。
- 参数:
-
ip
- 生成图像的ImageProducer
,从该图像中检索像素 -
x
- 从图像中进行检索的像素矩形左上角 x 坐标,该矩形是相对于默认(未缩放)图像大小的 -
y
- 从图像中进行检索的像素矩形左上角 y 坐标 -
w
- 要检索的像素矩形的宽度 -
h
- 要检索的像素矩形的高度 -
pix
- 用于保存从图像中检索的 RGB 像素的整数数组 -
off
- 数组中存储首个像素的偏移量 -
scansize
- 数组中一行像素到下一行像素之间的距离 - 另请参见:
-
ColorModel.getRGBdefault()
PixelGrabber
public PixelGrabber(Image img, int x, int y, int w, int h, boolean forceRGB)
-
创建一个 PixelGrabber 对象,以便从指定的图像中抓取像素矩形部分 (x, y, w, h)。如果每次调用 setPixels 都使用相同的 ColorModel,则将像素累积存储到原来的 ColorModel 中,否则将像素累积存储到默认 RGB ColorModel 中。如果 forceRGB 参数为 true,则总是将像素累积存储到默认 RGB ColorModel 中。无论是哪种情况,PixelGrabber 都会分配一个缓冲区来保存这些像素。如果 (w < 0) 或 (h < 0),则默认它们为传递信息时保存的源数据的宽度和高度。
- 参数:
-
img
- 要从中检索图像数据的图像 -
x
- 从图像中进行检索的像素矩形左上角 x 坐标,该矩形是相对于默认(未缩放)图像大小 -
y
- 从图像中进行检索的像素矩形左上角 y 坐标 -
w
- 要检索的像素矩形的宽度 -
h
- 要检索的像素矩形的高度 -
forceRGB
- 如果总是应该将像素转换为默认 RGB ColorModel,则为 true
方法详细信息 |
---|
startGrabbing
public void startGrabbing()
- 请求 PixelGrabber 开始获取像素。
-
-
abortGrabbing
public void abortGrabbing()
- 请求 PixelGrabber 中止图像的获取。
-
-
grabPixels
public boolean grabPixels() throws InterruptedException
- 请求 Image 或 ImageProducer 开始传递像素,并等待传递完相关矩形中的所有像素。
-
-
- 返回:
- 如果成功抓取了像素,则返回 true;在中止、有错误或超时的情况下返回 false
- 抛出:
-
InterruptedException
- 另一个线程中断了此线程。
grabPixels
public boolean grabPixels(long ms) throws InterruptedException
-
请求 Image 或 ImageProducer 开始传递像素,并等待传递完相关矩形中的所有像素,或者等待到超时期已过。根据
ms
值的不同,此方法采取下列行为:- 如果
ms
== 0,则等待到传递完所有像素 - 如果
ms
> 0,则传递所有像素,直到超时为止。 - 如果
ms
< 0,则在抓取所有像素后返回true
;否则返回false
并且不等待。
- 如果
-
-
- 参数:
-
ms
- 在超时前等待获取图像像素的毫秒数 - 返回:
- 如果成功抓取了像素,则返回 true;在中止、有错误或超时的情况下返回 false
- 抛出:
-
InterruptedException
- 另一个线程中断了此线程。
getStatus
public int getStatus()
- 返回像素的状态。返回表示可用像素信息的 ImageObserver 标志。
-
-
- 返回:
- 所有相关 ImageObserver 标志按位进行 OR 运算后的结果
- 另请参见:
-
ImageObserver