- 所有已知的实现类:
-
AreaAveragingScaleFilter,BufferedImageFilter,CropImageFilter,GrayFilter,ImageFilter,PixelGrabber,ReplicateScaleFilter,RGBImageFilter
public interface ImageConsumer
通过ImageProducer接口表达对图像数据感兴趣的对象的接口。当将消费者添加到图像生产者时,生产者使用此接口中定义的方法调用传递有关图像的所有数据。
- 参见:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int像素将一次传递完整的扫描线的倍数。static final int图像创建过程被故意中止。static final int在生成图像时遇到错误。static final int像素将以随机顺序传递。static final int图像包含单个静态图像。static final int图像的一个帧已完成,但还有更多帧要传递。static final int像素将在单次传递中传递。static final int图像已完成,没有更多像素或帧要传递。static final int像素将以自上而下、从左到右的顺序传递。 -
Method Summary
Modifier and TypeMethodDescriptionvoidimageComplete(int status) 当ImageProducer完成传递源图像包含的所有像素,或者完成多帧动画的单个帧,或者发生加载或生成图像时的错误时,将调用imageComplete方法。voidsetColorModel(ColorModel model) 设置用于使用setPixels方法调用报告的大多数像素的ColorModel对象。voidsetDimensions(int width, int height) 使用setDimensions方法调用报告源图像的尺寸。voidsetHints(int hintflags) 设置ImageConsumer用于处理ImageProducer传递的像素的提示。voidsetPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, int scansize) 使用一次或多次调用此方法传递图像的像素。voidsetPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, int scansize) 使用一次或多次调用setPixels方法传递图像的像素。voidsetProperties(Hashtable<?, ?> props) 设置与此图像关联的属性的可扩展列表。
-
Field Details
-
RANDOMPIXELORDER
static final int RANDOMPIXELORDER像素将以随机顺序传递。这告诉ImageConsumer不要使用依赖像素传递顺序的任何优化,这应该是在没有调用setHints方法的情况下的默认假设。- 参见:
-
TOPDOWNLEFTRIGHT
static final int TOPDOWNLEFTRIGHT像素将以自上而下、从左到右的顺序传递。- 参见:
-
COMPLETESCANLINES
static final int COMPLETESCANLINES像素将一次传递完整的扫描线的倍数。- 参见:
-
SINGLEPASS
static final int SINGLEPASS像素将在单次传递中传递。每个像素将仅在任何setPixels方法的一次调用中出现。不符合此标准的图像格式的示例是渐进式JPEG图像,它定义了多次传递像素,每次传递比上一次更精细。- 参见:
-
SINGLEFRAME
static final int SINGLEFRAME图像包含单个静态图像。像素将在调用setPixels方法定义像素后,将使用STATICIMAGEDONE标志调用imageComplete方法,之后不会再传递图像数据。不符合这些标准的图像类型的示例是视频源的输出,或用户操作的3D渲染的表示。这些类型图像中每帧的结束将通过使用SINGLEFRAMEDONE标志调用imageComplete来指示。- 参见:
-
IMAGEERROR
static final int IMAGEERROR在生成图像时遇到错误。- 参见:
-
SINGLEFRAMEDONE
static final int SINGLEFRAMEDONE图像的一个帧已完成,但还有更多帧要传递。- 参见:
-
STATICIMAGEDONE
static final int STATICIMAGEDONE图像已完成,没有更多像素或帧要传递。- 参见:
-
IMAGEABORTED
static final int IMAGEABORTED图像创建过程被故意中止。- 参见:
-
-
Method Details
-
setDimensions
void setDimensions(int width, int height) 使用setDimensions方法调用报告源图像的尺寸。- 参数:
-
width- 源图像的宽度 -
height- 源图像的高度
-
setProperties
设置与此图像关联的属性的可扩展列表。- 参数:
-
props- 要与此图像关联的属性列表
-
setColorModel
设置用于使用setPixels方法调用报告的大多数像素的ColorModel对象。请注意,使用setPixels传递的每组像素都包含自己的ColorModel对象,因此不应假定该模型将是传递像素值时使用的唯一模型。可能看到多个ColorModel对象的一个显著案例是过滤图像,对于它过滤的每组像素,过滤器确定是否可以无需更改使用原始ColorModel发送像素,还是应该使用更适合过滤过程的ColorModel修改(过滤)并传递像素。- 参数:
-
model- 指定的ColorModel - 参见:
-
setHints
void setHints(int hintflags) 设置ImageConsumer用于处理ImageProducer传递的像素的提示。ImageProducer可以以任何顺序传递像素,但如果ImageConsumer事先了解有关像素将如何传递的一些信息,它可能能够更有效地或更高质量地将像素缩放或转换为目标ColorModel。应在任何调用setPixels方法之前调用setHints方法,其中包含有关像素将如何传递的提示位掩码。如果ImageProducer不遵循指示的提示准则,则结果是未定义的。- 参数:
-
hintflags- ImageConsumer用于处理像素的一组提示
-
setPixels
使用一次或多次调用此方法传递图像的像素。每次调用都指定包含在像素数组中的源像素矩形的位置和大小。应使用指定的ColorModel对象将像素转换为其对应的颜色和alpha分量。像素(m,n)存储在像素数组中的索引(n * scansize + m + off)处。使用此方法传递的像素都存储为字节。- 参数:
-
x- 要设置像素区域的左上角的X坐标 -
y- 要设置像素区域的左上角的Y坐标 -
w- 像素区域的宽度 -
h- 像素区域的高度 -
model- 指定的ColorModel -
pixels- 像素数组 -
off- 像素数组中的偏移量 -
scansize- 像素数组中从一行像素到下一行的距离 - 参见:
-
setPixels
使用一次或多次调用setPixels方法传递图像的像素。每次调用都指定包含在像素数组中的源像素矩形的位置和大小。应使用指定的ColorModel对象将像素转换为其对应的颜色和alpha分量。像素(m,n)存储在像素数组中的索引(n * scansize + m + off)处。使用此方法传递的像素都存储为整数。- 参数:
-
x- 要设置像素区域左上角的X坐标 -
y- 要设置像素区域左上角的Y坐标 -
w- 像素区域的宽度 -
h- 像素区域的高度 -
model- 指定的ColorModel -
pixels- 像素数组 -
off- 在像素数组中的偏移量 -
scansize- 像素数组中从一行像素到下一行的距离 - 参见:
-
imageComplete
void imageComplete(int status) 当ImageProducer完成传递源图像包含的所有像素,或者完成多帧动画的单个帧,或者发生加载或生成图像时的错误时,将调用imageComplete方法。此时,ImageConsumer应该从ImageProducer注册的消费者列表中移除自身,除非它对连续帧感兴趣。- 参数:
-
status- 图像加载的状态 - 参见:
-