绘制图像时需要图像观察者。据我所知,目前 BufferedImage 是一个图像观察者。但我的问题是,图像观察器的定义是什么,它有什么作用?我很困惑。
最佳答案
首先,ImageObserver
是一个接口(interface)。根据docs :
An asynchronous update interface for receiving notifications about Image information as the Image is constructed.
换句话说,它是一种面向对象的方式来使用可以在完全创建之前修改的图像。每次修改图像时都会调用方法 imageUpdate(Image img, int infoflags, int x, int y, int width, int height)
。如果它想收到有关进一步更改的通知,则返回 true
,否则返回 false
。此方法可用于强制大小、分辨率、颜色等。它还可以让您对错误进行一些控制(ERROR
标志)。有关详细信息,请参阅 this .
观察者还可以处理有关图像的重要信息——例如,如果我们在屏幕上绘制图像并在渲染完成之前将其更改为更大的图像,则必须有一种方法来通知我们“重新绘制维度已更改(分配更多空间)并且它必须处理更改。 ImageObserver
是异步的事实在这种情况下非常重要。
关于java - 什么是 ImageObserver?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19212990/