java.awt.image

接口
异常
所有已知实现类:
AreaAveragingScaleFilter, BufferedImageFilter, CropImageFilter, GrayFilter, ImageFilter, PixelGrabber, ReplicateScaleFilter, RGBImageFilter

public interface ImageConsumer

对通过 ImageProducer 接口的图像数据感兴趣的对象接口。将一个使用者添加到图像生产者时,生产者会使用此接口中定义的方法调用传递所有关于图像的数据。

另请参见:
ImageProducer

字段摘要
static int COMPLETESCANLINES
          按照一次(多个)完整扫描行的方式传递像素。
static int IMAGEABORTED
          图像创建进程被故意中止。
static int IMAGEERROR
          生成图像时遇到错误。
static int RANDOMPIXELORDER
          按随机顺序传递像素。
static int SINGLEFRAME
          该图像包含单幅静态图像。
static int SINGLEFRAMEDONE
          图像的某一帧已完成,但还有更多的帧要传递。
static int SINGLEPASS
          以单通道的方式传递像素。
static int STATICIMAGEDONE
          图像已完成,不再有像素或帧要传递。
static int TOPDOWNLEFTRIGHT
          按从上到下、从左到右的顺序传递像素。
 
方法摘要
 void imageComplete(int status)
          当 ImageProducer 已完成源图像所含所有像素的传递时,或者已完成多帧动画的单个帧时,或者加载或生成图像中出现错误时,就调用 imageComplete 方法。
 void setColorModel(ColorModel model)
          设置用于大多数像素的 ColorModel 对象,这些像素使用 setPixels 方法调用进行报告。
 void setDimensions(int width, int height)
          使用 setDimensions 方法调用报告源图像尺寸。
 void setHints(int hintflags)
          设置 ImageConsumer 用于处理 ImageProducer 所传递像素的提示。
 void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, int scansize)
          一次或多次调用此方法来传递图像的像素。
 void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, int scansize)
          一次或多次调用 setPixels 方法来传递图像的像素。
 void setProperties(Hashtable<?,?> props)
          设置与此图像关联的可扩展属性列表。
 

字段详细信息

RANDOMPIXELORDER

static final int RANDOMPIXELORDER
按随机顺序传递像素。该字段告知 ImageConsumer 不要使用任何依赖于像素传递顺序的优化方法,在没有任何对 setHints 方法的调用时这应是默认的假定情况。

另请参见:
setHints(int), 常量字段值

TOPDOWNLEFTRIGHT

static final int TOPDOWNLEFTRIGHT
按从上到下、从左到右的顺序传递像素。

另请参见:
setHints(int), 常量字段值

COMPLETESCANLINES

static final int COMPLETESCANLINES
按照一次(多个)完整扫描行的方式传递像素。

另请参见:
setHints(int), 常量字段值

SINGLEPASS

static final int SINGLEPASS
以单通道的方式传递像素。每个像素只出现在某一个对 setPixels 方法的调用中。不符合此标准的一种图像格式是渐变 JPEG 图像,该图像以多通道的方式定义像素,每个通道都比前一个通道更为精确。

另请参见:
setHints(int), 常量字段值

SINGLEFRAME

static final int SINGLEFRAME
该图像包含单幅静态图像。像素将在调用 setPixels 方法时定义,不再传递图像数据之后,将调用带有 STATICIMAGEDONE 标志的 imageComplete 方法。不符合这些标准的一种图像类型是视频馈送输出,或由用户操作的 3D 呈现表示形式。通过调用带有 SINGLEFRAMEDONE 标志的 imageComplete 方法来指示这些图像类型中每一帧的结束。

另请参见:
setHints(int), imageComplete(int), 常量字段值

IMAGEERROR

static final int IMAGEERROR
生成图像时遇到错误。

另请参见:
imageComplete(int), 常量字段值

SINGLEFRAMEDONE

static final int SINGLEFRAMEDONE
图像的某一帧已完成,但还有更多的帧要传递。

另请参见:
imageComplete(int), 常量字段值

STATICIMAGEDONE

static final int STATICIMAGEDONE
图像已完成,不再有像素或帧要传递。

另请参见:
imageComplete(int), 常量字段值

IMAGEABORTED

static final int IMAGEABORTED
图像创建进程被故意中止。

另请参见:
imageComplete(int), 常量字段值
方法详细信息

setDimensions

void setDimensions(int width,
                   int height)
使用 setDimensions 方法调用报告源图像尺寸。

参数:
width - 源图像的宽度
height - 源图像的高度

setProperties

void setProperties(Hashtable<?,?> props)
设置与此图像关联的可扩展属性列表。

参数:
props - 要与此图像关联的属性列表

setColorModel

void setColorModel(ColorModel model)
设置用于大多数像素的 ColorModel 对象,这些像素使用 setPixels 方法调用进行报告。注意,使用 setPixels 传递的每个像素集合都包含其自己的 ColorModel 对象,所以不应假设此模型是传递像素值时使用的惟一模型。可以看到多个 ColorModel 对象时,一种值得注意的情况是过滤图像,对于它所过滤的每一个像素集合,过滤器确定是否可以使用原 ColorModel 不做改动地发送像素,或者是否应该使用对于过滤过程更方便的 ColorModel 修改(过滤)并传递像素。

参数:
model - 指定的 ColorModel
另请参见:
ColorModel

setHints

void setHints(int hintflags)
设置 ImageConsumer 用于处理 ImageProducer 所传递像素的提示。ImageProducer 能以任意顺序传递像素,但是如果 ImageConsumer 预先知道某些有关像素传递方式的信息,那么它就能够更高效或以更高的质量将像素缩放或转换到目标 ColorModel。应该在调用带提示位掩码(其中包含有关像素传递方式的信息)的任意 setPixels 方法前调用 setHints 方法。如果 ImageProducer 未遵从指定的提示准则,则结果是不明确的。

参数:
hintflags - ImageConsumer 用于处理像素的提示集合

setPixels

void setPixels(int x,
               int y,
               int w,
               int h,
               ColorModel model,
               byte[] pixels,
               int off,
               int scansize)
一次或多次调用此方法来传递图像的像素。每次调用都指定像素数组中所含源像素的矩形位置和大小。应该使用指定的 ColorModel 对象将像素转换为相应的颜色和 alpha 分量。像素 (m,n) 存储在像素数组的索引 (n * scansize + m + off) 处。使用此方法所传递的像素都以 byte 类型存储。

参数:
x - 要设置的像素区域左上角的 X 坐标
y - 要设置的像素区域左上角的 Y 坐标
w - 像素区域的宽度
h - 像素区域的高度
model - 指定的 ColorModel
pixels - 像素数组
off - pixels 数组中的偏移量
scansize - pixels 数组中一行像素到下一行的距离
另请参见:
ColorModel

setPixels

void setPixels(int x,
               int y,
               int w,
               int h,
               ColorModel model,
               int[] pixels,
               int off,
               int scansize)
一次或多次调用 setPixels 方法来传递图像的像素。每次调用都指定像素数组中所含源像素的矩形位置和大小。应该使用指定的 ColorModel 对象将像素转换为相应的颜色和 alpha 分量。像素 (m,n) 存储在像素数组的索引 (n * scansize + m + off) 处。使用此方法所传递的像素都以 int 形式存储。此方法都以 int 形式存储。

参数:
x - 要设置的像素区域左上角的 X 坐标
y - 要设置的像素区域左上角的 Y 坐标
w - 像素区域的宽度
h - 像素区域的高度
model - 指定的 ColorModel
pixels - 像素数组
off - pixels 数组中的偏移量
scansize - pixels 数组中一行像素到下一行的距离
另请参见:
ColorModel

imageComplete

void imageComplete(int status)
当 ImageProducer 已完成源图像所含所有像素的传递时,或者已完成多帧动画的单个帧时,或者加载或生成图像中出现错误时,就调用 imageComplete 方法。除非 ImageConsumer 还对后续的帧感兴趣,否则此时应该从以 ImageProducer 注册的使用者列表中将其自身移除。

参数:
status - 图像加载的状态
另请参见:
ImageProducer.removeConsumer(java.awt.image.ImageConsumer)