第6章 图像过滤
表6-1 java.awt.image.ImageProducer方法
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
方法 目的
─────────────────────────────────
void addConsumer(ImageConsumer) 向生产者注册图像消费者
boolean isConsumer(ImageConsumer) 说明图像消费者是否已向生产者
注册。如果已经注册,将返回true;反之,则返回false
void removeConsumer(ImageConsumer)取消图像消费者在生产者中的注册
void requestTopDownLeftRightResend(ImageConsumer)请求生产者重新
发送图像数据,发送的顺序是从上到下,从左到右;即TDLR顺序。如果
数据不能用该方式传送,则生产者可以自由地忽略这个请求
void startProduction(ImageConsumer)向生产者注册消费者,并立即开
始生产要传送的图像位
─────────────────────────────────
ImageProducer.startProduction()注册被传递的图像消费者,并指示生产者立即开始重构图像。被重构的图像位被直接传递给所有已向生产者注册的图像消费者。
ImageProducer.requestTopDownLeftRightResend()在调用时,其作用是启动消费者按从上到下、从左到右(TDRL)的顺序接受图像位。如果接受的图像数据是采用TDRL的方式传送的话,一些图像消费者在过滤图像时,可以实现比较精确的算法。然而,一些图像生产者不能采用TDRL的方式传送图像位,所以上述的方法在调用时就被自由地忽略。如果上述的请求可以被填充,则生产者将调用下面的ImageConsumer方法:
setHints()
setPixels()
imageComplete()
在java.awt.Image软件包中,有两个类实现ImageProducer接口,这两个类就是:
■FilteredImageSource
■MemoryImageSource