java.lang.Object
java.awt.image.PixelGrabber
- 所有已实现的接口:
ImageConsumer
PixelGrabber 类实现了一个 ImageConsumer,它可以附加到 Image 或 ImageProducer 对象以检索该图像中的像素子集。这是一个例子:
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(ImageProducer ip, int x, int y, int w, int h, int[] pix, int off, int scansize) 创建一个 PixelGrabber 对象,以将指定 ImageProducer 生成的图像中的 (x, y, w, h) 像素矩形部分抓取到给定数组中。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) 像素矩形部分抓取到给定数组中。 -
方法总结
修饰符和类型方法描述void请求 PixelGrabber 中止图像获取。获取存储在数组中的像素的 ColorModel。int获取像素缓冲区的高度(调整图像高度后)。获取像素缓冲区。int返回像素的状态。intgetWidth()获取像素缓冲区的宽度(调整图像宽度后)。boolean请求 Image 或 ImageProducer 开始传送像素并等待传送感兴趣矩形中的所有像素。booleangrabPixels(long ms) 请求 Image 或 ImageProducer 开始传送像素并等待传送感兴趣的矩形中的所有像素或直到指定的超时已过。voidimageComplete(int status) imageComplete 方法是 ImageConsumer API 的一部分,此类必须实现该 API 才能检索像素。voidsetColorModel(ColorModel model) setColorModel 方法是 ImageConsumer API 的一部分,此类必须实现该 API 才能检索像素。voidsetDimensions(int width, int height) setDimensions 方法是 ImageConsumer API 的一部分,此类必须实现该 API 才能检索像素。voidsetHints(int hints) setHints 方法是 ImageConsumer API 的一部分,此类必须实现该 API 才能检索像素。voidsetPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, byte[] pixels, int srcOff, int srcScan) setPixels 方法是 ImageConsumer API 的一部分,此类必须实现该 API 才能检索像素。voidsetPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, int[] pixels, int srcOff, int srcScan) setPixels 方法是 ImageConsumer API 的一部分,此类必须实现该 API 才能检索像素。voidsetProperties(Hashtable<?, ?> props) setProperties 方法是 ImageConsumer API 的一部分,此类必须实现该 API 才能检索像素。void请求 PixelGrabber 开始获取像素。intstatus()返回像素的状态。
-
构造方法详细信息
-
PixelGrabber
创建一个 PixelGrabber 对象以将指定图像中的 (x, y, w, h) 像素矩形部分抓取到给定数组中。像素存储在默认 RGB ColorModel 的数组中。像素 (i, j) 的 RGB 数据存储在位于pix[(j - y) * scansize + (i - x) + off]的数组中,其中 (i, j) 在矩形 (x, y, w, h) 内。- 参数:
img- 从中检索像素的图像x- 要从图像中检索的像素矩形左上角的 x 坐标,相对于图像的默认(未缩放)大小y- 要从图像中检索的像素矩形左上角的 y 坐标w- 要检索的像素矩形的宽度h- 要检索的像素矩形的高度pix- 用于保存从图像中检索到的 RGB 像素的整数数组off- 存储第一个像素的数组中的偏移量scansize- 从一行像素到数组中下一行的距离- 参见:
-
PixelGrabber
创建一个 PixelGrabber 对象,以将指定 ImageProducer 生成的图像中的 (x, y, w, h) 像素矩形部分抓取到给定数组中。像素存储在默认 RGB ColorModel 的数组中。像素 (i, j) 的 RGB 数据存储在位于pix[(j - y) * scansize + (i - x) + off]的数组中,其中 (i, j) 在矩形 (x, y, w, h) 内。- 参数:
ip- 生成从中检索像素的图像的ImageProducerx- 要从图像中检索的像素矩形左上角的 x 坐标,相对于图像的默认(未缩放)大小y- 要从图像中检索的像素矩形左上角的 y 坐标w- 要检索的像素矩形的宽度h- 要检索的像素矩形的高度pix- 用于保存从图像中检索到的 RGB 像素的整数数组off- 存储第一个像素的数组中的偏移量scansize- 从一行像素到数组中下一行的距离- 参见:
-
PixelGrabber
创建一个 PixelGrabber 对象以从指定图像中抓取像素的 (x, y, w, h) 矩形部分。如果每次调用 setPixels 使用相同的 ColorModel,则像素将在原始 ColorModel 中累积,否则像素将在默认 RGB ColorModel 中累积。如果 forceRGB 参数为真,那么无论如何像素都会在默认的 RGB ColorModel 中累积。 PixelGrabber 会分配一个缓冲区来保存两种情况下的像素。如果是(w < 0)或(h < 0),则在传递该信息时它们将默认为源数据的剩余宽度和高度。- 参数:
img- 从中检索图像数据的图像x- 要从图像中检索的像素矩形左上角的 x 坐标,相对于图像的默认(未缩放)大小y- 要从图像中检索的像素矩形左上角的 y 坐标w- 要检索的像素矩形的宽度h- 要检索的像素矩形的高度forceRGB- 如果像素应始终转换为默认 RGB ColorModel,则为真
-
-
方法详情
-
startGrabbing
public void startGrabbing()请求 PixelGrabber 开始获取像素。 -
abortGrabbing
public void abortGrabbing()请求 PixelGrabber 中止图像获取。 -
grabPixels
请求 Image 或 ImageProducer 开始传送像素并等待传送感兴趣矩形中的所有像素。- 返回:
- 如果成功抓取像素,则为 true;如果中止、错误或超时,则为 false
- 抛出:
InterruptedException- 另一个线程中断了该线程。
-
grabPixels
请求 Image 或 ImageProducer 开始传送像素并等待传送感兴趣的矩形中的所有像素或直到指定的超时已过。此方法以下列方式运行,具体取决于ms的值:- 如果
ms == 0,等待直到所有像素都被传送 - 如果
ms > 0,等待直到所有像素都在超时到期时交付。 - 如果是
ms < 0,如果所有像素都被抓取则返回true,否则返回false并且不等待。
- 参数:
ms- 在超时之前等待图像像素到达的毫秒数- 返回:
- 如果成功抓取像素,则为 true;如果中止、错误或超时,则为 false
- 抛出:
InterruptedException- 另一个线程中断了该线程。
- 如果
-
getStatus
public int getStatus()返回像素的状态。返回表示可用像素信息的 ImageObserver 标志。- 返回:
- 所有相关 ImageObserver 标志的按位或
- 参见:
-
getWidth
public int getWidth()获取像素缓冲区的宽度(调整图像宽度后)。如果没有为要抓取的像素矩形指定宽度,则此信息仅在图像提供尺寸后可用。- 返回:
- 用于像素缓冲区的最终宽度,如果宽度未知则为 -1
- 参见:
-
getHeight
public int getHeight()获取像素缓冲区的高度(调整图像高度后)。如果没有为要抓取的像素矩形指定宽度,则此信息仅在图像提供尺寸后可用。- 返回:
- 用于像素缓冲区的最终高度,如果高度未知,则为 -1
- 参见:
-
getPixels
获取像素缓冲区。如果 PixelGrabber 未使用显式像素缓冲区来保存像素,则此方法将返回 null,直到已知图像数据的大小和格式。如果源图像使用多个 ColorModel 来传递数据,则 PixelGrabber 可能会随时回退到在默认 RGB ColorModel 中累积数据,因此此方法返回的数组对象可能会随时间变化,直到图像抓取完成。- 返回:
- 字节数组或 int 数组
- 参见:
-
getColorModel
获取存储在数组中的像素的 ColorModel。如果 PixelGrabber 是使用显式像素缓冲区构造的,则此方法将始终返回默认的 RGB ColorModel,否则它可能会返回 null,直到 ImageProducer 使用的 ColorModel 已知为止。如果源图像使用多个 ColorModel 来传递数据,则 PixelGrabber 可能会在任何时候退回到默认 RGB ColorModel 中累积数据,因此此方法返回的 ColorModel 对象可能会随时间变化,直到图像抓取完成并且可能不反映 ImageProducer 用来传送像素的任何 ColorModel 对象。- 返回:
- 用于存储像素的 ColorModel 对象
- 参见:
-
setDimensions
public void setDimensions(int width, int height) setDimensions 方法是 ImageConsumer API 的一部分,此类必须实现该 API 才能检索像素。注意:此方法旨在由正在抓取像素的图像的 ImageProducer 调用。使用此类从图像中检索像素的开发人员应避免直接调用此方法,因为该操作可能会导致检索请求的像素出现问题。
- 指定者:
setDimensions在接口ImageConsumer中- 参数:
width- 维度的宽度height- 维度的高度
-
setHints
public void setHints(int hints) setHints 方法是 ImageConsumer API 的一部分,此类必须实现该 API 才能检索像素。注意:此方法旨在由正在抓取像素的图像的 ImageProducer 调用。使用此类从图像中检索像素的开发人员应避免直接调用此方法,因为该操作可能会导致检索请求的像素出现问题。
- 指定者:
setHints在接口ImageConsumer中- 参数:
hints- 一组用于处理像素的提示
-
setProperties
setProperties 方法是 ImageConsumer API 的一部分,此类必须实现该 API 才能检索像素。注意:此方法旨在由正在抓取像素的图像的 ImageProducer 调用。使用此类从图像中检索像素的开发人员应避免直接调用此方法,因为该操作可能会导致检索请求的像素出现问题。
- 指定者:
setProperties在接口ImageConsumer中- 参数:
props- 属性列表
-
setColorModel
setColorModel 方法是 ImageConsumer API 的一部分,此类必须实现该 API 才能检索像素。注意:此方法旨在由正在抓取像素的图像的 ImageProducer 调用。使用此类从图像中检索像素的开发人员应避免直接调用此方法,因为该操作可能会导致检索请求的像素出现问题。
- 指定者:
setColorModel在接口ImageConsumer中- 参数:
model- 指定的ColorModel- 参见:
-
setPixels
public void setPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, byte[] pixels, int srcOff, int srcScan) setPixels 方法是 ImageConsumer API 的一部分,此类必须实现该 API 才能检索像素。注意:此方法旨在由正在抓取像素的图像的 ImageProducer 调用。使用此类从图像中检索像素的开发人员应避免直接调用此方法,因为该操作可能会导致检索请求的像素出现问题。
- 指定者:
setPixels在接口ImageConsumer中- 参数:
srcX- 待设置像素区域左上角的X坐标srcY- 待设置像素区域左上角的Y坐标srcW- 像素区域的宽度srcH- 像素区域的高度model- 指定的ColorModelpixels- 像素数组srcOff- 像素数组的偏移量srcScan- 像素数组中一行像素到下一行像素的距离- 参见:
-
setPixels
public void setPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, int[] pixels, int srcOff, int srcScan) setPixels 方法是 ImageConsumer API 的一部分,此类必须实现该 API 才能检索像素。注意:此方法旨在由正在抓取像素的图像的 ImageProducer 调用。使用此类从图像中检索像素的开发人员应避免直接调用此方法,因为该操作可能会导致检索请求的像素出现问题。
- 指定者:
setPixels在接口ImageConsumer中- 参数:
srcX- 待设置像素区域左上角的X坐标srcY- 待设置像素区域左上角的Y坐标srcW- 像素区域的宽度srcH- 像素区域的高度model- 指定的ColorModelpixels- 像素数组srcOff- 像素数组的偏移量srcScan- 像素数组中一行像素到下一行像素的距离- 参见:
-
imageComplete
public void imageComplete(int status) imageComplete 方法是 ImageConsumer API 的一部分,此类必须实现该 API 才能检索像素。注意:此方法旨在由正在抓取像素的图像的 ImageProducer 调用。使用此类从图像中检索像素的开发人员应避免直接调用此方法,因为该操作可能会导致检索请求的像素出现问题。
- 指定者:
imageComplete在接口ImageConsumer中- 参数:
status- 图片加载状态- 参见:
-
status
public int status()返回像素的状态。返回表示可用像素信息的 ImageObserver 标志。此方法与getStatus具有相同的实现,但getStatus是首选方法,因为它符合以“getXXX”形式命名信息检索方法的约定。- 返回:
- 所有相关 ImageObserver 标志的按位或
- 参见:
-