java.lang.Object java.awt.image.PixelGrabber
public class PixelGrabber
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 的一部分,此类必需实现 ImageConsumer API 来检索像素。 |
void |
setColorModel(ColorModel model) setColorModel 方法是 ImageConsumer API 的一部分,此类必需实现 ImageConsumer API 来检索像素。 |
void |
setDimensions(int width, int height) setDimensions 方法是 ImageConsumer API 的一部分,此类必需实现 ImageConsumer API 来检索像素。 |
void |
setHints(int hints) setHints 方法是 ImageConsumer API 的一部分,此类必需实现 ImageConsumer API 来检索像素。 |
void |
setPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, byte[] pixels, int srcOff, int srcScan) setPixels 方法是 ImageConsumer API 的一部分,此类必需实现 ImageConsumer API 来检索像素。 |
void |
setPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, int[] pixels, int srcOff, int srcScan) setPixels 方法是 ImageConsumer API 的一部分,此类必需实现 ImageConsumer API 来检索像素。 |
void |
setProperties(Hashtable<?,?> props) setProperties 方法是 ImageConsumer API 的一部分,此类必需实现 ImageConsumer API 来检索像素。 |
void |
startGrabbing() 请求 PixelGrabber 开始获取像素。 |
int |
status() 返回像素的状态。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
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)
img
- 要从中检索图像数据的图像
x
- 从图像中进行检索的像素矩形左上角 x 坐标,其相对于默认(未缩放)图像大小
y
- 从图像中进行检索的像素矩形左上角 y 坐标
w
- 要检索的像素矩形的宽度
h
- 要检索的像素矩形的高度
forceRGB
- 如果总是应该将像素转换为默认 RGB ColorModel,则为 true
方法详细信息 |
---|
public 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 调用。使用此类检索图像像素的开发人员应该避免直接调用此方法,因为该调用操作可能导致检索请求像素时出现问题。
ImageConsumer
中的
setDimensions
width
- 尺寸的宽度
height
- 尺寸的高度
public void setHints(int hints)
注:此方法应该由要从中抓取像素的 Image 的 ImageProducer 调用。使用此类检索图像像素的开发人员应该避免直接调用此方法,因为该调用操作可能导致检索请求像素时出现问题。
ImageConsumer
中的
setHints
hints
- 用于处理像素的提示集
public void setProperties(Hashtable<?,?> props)
注:此方法应该由要从中抓取像素的 Image 的 ImageProducer 调用。使用此类检索图像像素的开发人员应该避免直接调用此方法,因为该调用操作可能导致检索请求像素时出现问题。
ImageConsumer
中的
setProperties
props
- 属性列表
public void setColorModel(ColorModel model)
注:此方法应该由要从中抓取像素的 Image 的 ImageProducer 调用。使用此类检索图像像素的开发人员应该避免直接调用此方法,因为该调用操作可能导致检索请求像素时出现问题。
ImageConsumer
中的
setColorModel
model
- 指定的
ColorModel
getColorModel()
public void setPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, byte[] pixels, int srcOff, int srcScan)
注:此方法应该由要从中抓取像素的 Image 的 ImageProducer 调用。使用此类检索图像像素的开发人员应该避免直接调用此方法,因为该调用操作可能导致检索请求像素时出现问题。
ImageConsumer
中的
setPixels
srcX
- 要设置的像素区域左上角的 X 坐标
srcY
- 要设置的像素区域左上角的 Y 坐标
srcW
- 像素区域的宽度
srcH
- 像素区域的高度
model
- 指定的
ColorModel
pixels
- 像素数组
srcOff
- 像素数组中的偏移量
srcScan
- 像素数组中一行像素到下一行的距离
getPixels()
public void setPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, int[] pixels, int srcOff, int srcScan)
注:此方法应该由要从中抓取像素的 Image 的 ImageProducer 调用。使用此类检索图像像素的开发人员应该避免直接调用此方法,因为该调用操作可能导致检索请求像素时出现问题。
ImageConsumer
中的
setPixels
srcX
- 要设置的像素区域左上角的 X 坐标
srcY
- 要设置的像素区域左上角的 Y 坐标
srcW
- 像素区域的宽度
srcH
- 像素区域的高度
model
- 指定的
ColorModel
pixels
- 像素数组
srcOff
- 像素数组中的偏移量
srcScan
- 像素数组中一行像素到下一行的距离
getPixels()
public void imageComplete(int status)
注:此方法应该由要从中抓取像素的 Image 的 ImageProducer 调用。使用此类检索图像像素的开发人员应该避免直接调用此方法,因为该调用操作可能导致检索请求像素时出现问题。
ImageConsumer
中的
imageComplete
status
- 正在加载的图像的状态
ImageProducer.removeConsumer(java.awt.image.ImageConsumer)
public int status()
getStatus
具有相同的实现,但是优先使用
getStatus
方法,因为它遵循检索信息方法的命名约定,即 "getXXX" 的形式。
ImageObserver
,
getStatus()