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
Constructor and Description |
---|
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抢(X,Y,W,H)从图像由指定的imageproducer到给定的像素阵列的矩形截面。
|
Modifier and Type | Method and Description |
---|---|
void |
abortGrabbing()
要求pixelgrabber中止图像获取。
|
ColorModel |
getColorModel()
获取存储在阵列的像素的颜色模型。
|
int |
getHeight()
获取像素缓冲区的高度(调整后的图像高度)。
|
Object |
getPixels()
获取像素缓冲区。
|
int |
getStatus()
返回像素的状态。
|
int |
getWidth()
获取像素缓冲区的宽度(调整后的图像宽度)。
|
boolean |
grabPixels()
请求的图像或imageproducer开始交付像素等所有感兴趣的矩形的像素将交付。
|
boolean |
grabPixels(long ms)
请求的图像或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)
该方法是imageconsumer SetPixels的API,这类必须实现检索点。
|
void |
setPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, int[] pixels, int srcOff, int srcScan)
该方法是imageconsumer SetPixels的API,这类必须实现检索点。
|
void |
setProperties(Hashtable<?,?> props)
这是imageconsumer setProperties方法的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色彩模型
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)
注意:这个方法是由其像素被抓的图像imageproducer。使用此类来从图像中检索像素的开发人员应该避免直接调用该方法,因为该操作可能会导致检索请求的像素的问题。
setDimensions
接口
ImageConsumer
width
-尺寸的宽度
height
-维度的高度
public void setHints(int hints)
注意:这个方法是由其像素被抓的图像imageproducer。使用此类来从图像中检索像素的开发人员应该避免直接调用该方法,因为该操作可能会导致检索请求的像素的问题。
setHints
接口
ImageConsumer
hints
-一套用于处理像素的暗示
public void setProperties(Hashtable<?,?> props)
注意:这个方法是由其像素被抓的图像imageproducer。使用此类来从图像中检索像素的开发人员应该避免直接调用该方法,因为该操作可能会导致检索请求的像素的问题。
setProperties
接口
ImageConsumer
props
-属性列表
public void setColorModel(ColorModel model)
注意:这个方法是由其像素被抓的图像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)
注意:这个方法是由其像素被抓的图像imageproducer。使用此类来从图像中检索像素的开发人员应该避免直接调用该方法,因为该操作可能会导致检索请求的像素的问题。
setPixels
接口
ImageConsumer
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)
注意:这个方法是由其像素被抓的图像imageproducer。使用此类来从图像中检索像素的开发人员应该避免直接调用该方法,因为该操作可能会导致检索请求的像素的问题。
setPixels
接口
ImageConsumer
srcX
的x坐标的像素区域的左上角是集
srcY
的像素区域的左上角要设置的Y坐标
srcW
-像素区域的宽度
srcH
-像素区域的高度
model
-指定
ColorModel
pixels
-像素阵列
srcOff
-偏移的像素阵列
srcScan
-从一行像素的像素阵列的距离下
getPixels()
public void imageComplete(int status)
注意:这个方法是由其像素被抓的图像imageproducer。使用此类来从图像中检索像素的开发人员应该避免直接调用该方法,因为该操作可能会导致检索请求的像素的问题。
imageComplete
接口
ImageConsumer
status
-图片加载状态
ImageProducer.removeConsumer(java.awt.image.ImageConsumer)
public int status()
getStatus
有相同的实现,但
getStatus
是首选方法,因为它符合公约命名的信息检索方法与形式”的getXXX”。
ImageObserver
,
getStatus()
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.