- java.lang.Object
 -  
      
- java.awt.image.PixelGrabber
 
 
-  
       
- 实现的所有接口
 -  
         
ImageConsumer 
public class PixelGrabber extends Object implements 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]); } } } 
-  
        
       
-  
             
字段汇总
-  
               
Fields declared in interface 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)矩形像素部分到给定数组中。 
-  
             
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 voidabortGrabbing()请求PixelGrabber中止图像提取。ColorModelgetColorModel()获取存储在数组中的像素的ColorModel。intgetHeight()获取像素缓冲区的高度(调整图像高度后)。ObjectgetPixels()获取像素缓冲区。intgetStatus()返回像素的状态。intgetWidth()获取像素缓冲区的宽度(调整图像宽度后)。booleangrabPixels()请求Image或ImageProducer开始提供像素,并等待感兴趣的矩形中的所有像素被传递。booleangrabPixels(long ms)请求Image或ImageProducer开始传送像素,并等待传递感兴趣的矩形中的所有像素,或者直到指定的超时时间结束。voidimageComplete(int status)imageComplete方法是ImageConsumer API的一部分,此类必须实现它以检索像素。voidsetColorModel(ColorModel model)setColorModel方法是ImageConsumer API的一部分,该类必须实现它才能检索像素。voidsetDimensions(int width, int height)setDimensions方法是ImageConsumer API的一部分,此类必须实现它才能检索像素。voidsetHints(int hints)setHints方法是ImageConsumer API的一部分,该类必须实现它才能检索像素。voidsetPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, byte[] pixels, int srcOff, int srcScan)setPixels方法是ImageConsumer API的一部分,该类必须实现它才能检索像素。voidsetPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, int[] pixels, int srcOff, int srcScan)setPixels方法是ImageConsumer API的一部分,该类必须实现它才能检索像素。voidsetProperties(Hashtable<?,?> props)setProperties方法是ImageConsumer API的一部分,此类必须实现该API才能检索像素。voidstartGrabbing()请求PixelGrabber开始获取像素。intstatus()返回像素的状态。 
 -  
             
 
-  
        
       
-  
             
构造方法详细信息
-  
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)的RGB数据,其中(i,j)在矩形(x,y,w,h)内,存储在阵列中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)的RGB数据,其中(i,j)在矩形(x,y,w,h)内,存储在阵列中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,forceRGBtrue 
 
 -  
 
-  
             
方法详细信息
-  
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 
 
-  
getWidth
public int getWidth()
获取像素缓冲区的宽度(调整图像宽度后)。 如果没有为要抓取的像素矩形指定宽度,则此信息仅在图像传递尺寸后才可用。- 结果
 - 用于像素缓冲区的最终宽度,如果宽度尚不知道,则为-1
 - 另请参见:
 -  
              
getStatus() 
 
-  
getHeight
public int getHeight()
获取像素缓冲区的高度(调整图像高度后)。 如果没有为要抓取的像素矩形指定宽度,则此信息仅在图像传递尺寸后才可用。- 结果
 - 用于像素缓冲区的最终高度,如果高度尚不知道,则为-1
 - 另请参见:
 -  
              
getStatus() 
 
-  
getPixels
public Object getPixels()
获取像素缓冲区。 如果PixelGrabber没有用显式像素缓冲区构建来保存像素,则此方法将返回null,直到知道图像数据的大小和格式。 由于如果源图像使用多个ColorModel来传递数据,PixelGrabber可能会在任何时候依赖于在默认RGB ColorModel中累积数据,此方法返回的数组对象可能会随着时间的推移而改变,直到图像抓取完成为止。 
-  
getColorModel
public ColorModel getColorModel()
获取存储在数组中的像素的ColorModel。 如果PixelGrabber是使用显式像素缓冲区构造的,则此方法将始终返回默认的RGB ColorModel,否则它可能会返回null,直到ImageProducer使用的ColorModel已知。 由于如果源图像使用多个ColorModel来传递数据,PixelGrabber可能会在任何时候依赖于在默认RGB ColorModel中累积数据,此方法返回的ColorModel对象可能会随着时间的推移而改变,直到图像抓取完成并且可能无法反映ImageProducer用于传递像素的任何ColorModel对象。- 结果
 - 用于存储像素的ColorModel对象
 - 另请参见:
 -  
              
getStatus(),ColorModel.getRGBdefault(),setColorModel(ColorModel) 
 
-  
setDimensions
public void setDimensions(int width, int height)setDimensions方法是ImageConsumer API的一部分,此类必须实现它才能检索像素。注意:此方法旨在由图像的ImageProducer调用,其像素被抓取。 使用此类从图像中检索像素的开发人员应避免直接调用此方法,因为该操作可能导致检索请求的像素时出现问题。
- Specified by:
 -  
              
setDimensions接口ImageConsumer - 参数
 -  
              
width- 维度的宽度 -  
              
height- 维度的高度 
 
-  
setHints
public void setHints(int hints)
setHints方法是ImageConsumer API的一部分,该类必须实现它才能检索像素。注意:此方法旨在由图像的ImageProducer调用,其像素被抓取。 使用此类从图像中检索像素的开发人员应避免直接调用此方法,因为该操作可能导致检索请求的像素时出现问题。
- Specified by:
 -  
              
setHints接口ImageConsumer - 参数
 -  
              
hints- 用于处理像素的一组提示 
 
-  
setProperties
public void setProperties(Hashtable<?,?> props)
setProperties方法是ImageConsumer API的一部分,此类必须实现该API才能检索像素。注意:此方法旨在由图像的ImageProducer调用,其像素被抓取。 使用此类从图像中检索像素的开发人员应避免直接调用此方法,因为该操作可能导致检索请求的像素时出现问题。
- Specified by:
 -  
              
setProperties,界面ImageConsumer - 参数
 -  
              
props- 属性列表 
 
-  
setColorModel
public void setColorModel(ColorModel model)
setColorModel方法是ImageConsumer API的一部分,该类必须实现它才能检索像素。注意:此方法旨在由图像的ImageProducer调用,其像素被抓取。 使用此类从图像中检索像素的开发人员应避免直接调用此方法,因为该操作可能导致检索请求的像素时出现问题。
- Specified by:
 -  
              
setColorModel接口ImageConsumer - 参数
 -  
              
model- 指定的ColorModel - 另请参见:
 -  
              
getColorModel() 
 
-  
setPixels
public void setPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, byte[] pixels, int srcOff, int srcScan)setPixels方法是ImageConsumer API的一部分,该类必须实现它才能检索像素。注意:此方法旨在由图像的ImageProducer调用,其像素被抓取。 使用此类从图像中检索像素的开发人员应避免直接调用此方法,因为该操作可能导致检索请求的像素时出现问题。
- Specified by:
 -  
              
setPixels,界面ImageConsumer - 参数
 -  
              
srcX- 要设置的像素区域左上角的X坐标 -  
              
srcY- 要设置的像素区域左上角的Y坐标 -  
              
srcW- 像素区域的宽度 -  
              
srcH- 像素区域的高度 -  
              
model- 指定的ColorModel -  
              
pixels- 像素数组 -  
              
srcOff- 像素阵列的偏移量 -  
              
srcScan- 像素阵列中从一行像素到下一行像素的距离 - 另请参见:
 -  
              
getPixels() 
 
-  
setPixels
public void setPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, int[] pixels, int srcOff, int srcScan)setPixels方法是ImageConsumer API的一部分,该类必须实现它才能检索像素。注意:此方法旨在由图像的ImageProducer调用,其像素被抓取。 使用此类从图像中检索像素的开发人员应避免直接调用此方法,因为该操作可能导致检索请求的像素时出现问题。
- Specified by:
 -  
              
setPixels,界面ImageConsumer - 参数
 -  
              
srcX- 要设置的像素区域左上角的X坐标 -  
              
srcY- 要设置的像素区域左上角的Y坐标 -  
              
srcW- 像素区域的宽度 -  
              
srcH- 像素区域的高度 -  
              
model- 指定的ColorModel -  
              
pixels- 像素数组 -  
              
srcOff- 像素阵列的偏移量 -  
              
srcScan- 像素阵列中从一行像素到下一行像素的距离 - 另请参见:
 -  
              
getPixels() 
 
-  
imageComplete
public void imageComplete(int status)
imageComplete方法是ImageConsumer API的一部分,此类必须实现它以检索像素。注意:此方法旨在由图像的ImageProducer调用,其像素被抓取。 使用此类从图像中检索像素的开发人员应避免直接调用此方法,因为该操作可能导致检索请求的像素时出现问题。
- Specified by:
 -  
              
imageComplete接口ImageConsumer - 参数
 -  
              
status- 图像加载的状态 - 另请参见:
 -  
              
ImageProducer.removeConsumer(java.awt.image.ImageConsumer) 
 
-  
status
public int status()
返回像素的状态。 返回表示可用像素信息的ImageObserver标志。 此方法与getStatus具有相同的实现方式,但getStatus是首选方法,因为它符合使用“getXXX”形式命名信息检索方法的约定。- 结果
 - 所有相关ImageObserver标志的按位OR
 - 另请参见:
 -  
              
ImageObserver,getStatus() 
 
 -  
 
 -