当您绘制图像时,它需要图像观察者。从我目前了解的BufferedImage是一个图像观察者。但我的问题是,什么定义了图像观察者,它有什么作用?我很困惑。什么是ImageObserver?
回答
首先,ImageObserver
是接口。根据docs:
一个异步更新接口,用于在构造图像时接收有关图像信息的通知。
换句话说,它是一种面向对象的方式来使用可以完全创建之前修改的图像。任何时候图像被修改都会调用方法imageUpdate(Image img, int infoflags, int x, int y, int width, int height)
。如果它想要被通知进一步的变化,则返回true
,否则返回false
。这种方法可以用来强制大小,分辨率,颜色等。它也给你一些错误的控制(ERROR
标志)。欲了解更多信息,请参阅this。
观察者也可能会处理关于图像的重要信息 - 例如,如果我们在屏幕上绘制图像并在绘制完成之前将其更改为更大的图像,则必须有方法通知我们重新说明维度已经发生变化(分配更多空间),并且必须处理这些变化。在这种情况下,ImageObserver
是异步的事实是非常重要的。
ImageObserver
是一种具有处理图像加载状态通知方法的接口。它可以根据需要使用它来重新显示。 JFrame
和Applet
都实现了ImageObserver
接口。
要告诉用户关于一个图像加载
ImageObserver
接口 - 使加载过程的监控,使 用户的知情权和图像可以尽快使用,一旦它加载。异步加载图像 - 如何知道图像何时准备就绪。
的图像已准备就绪 -
getImage()
方法返回,没过多久什么是 知道关于图像。imageUpdate(Image img, int infoflags, int x, int y, int width, int height)
注:
java.awt.Component
实现ImageObserver
,所有的子类的 好!g.drawImage(imge, 0,0, this)
- 这是指ImageObserver
实例。imageUpdate()
- 在必要时调用ImageObserver
。你不明确地打电话给 !- 如果图像完整,返回
false
。 - 如果图像不完整并需要更新,返回
true
。
- 如果图像完整,返回
ImageObserver.ALLBITS = 32
各种常数被组合以形成所述
infoflags
参数,其指示所有 信息是否可用。
看看this和Oreilly's explanation。 Also take a look at this manual it is really helpful
- 1. Java Graphics.drawImage()如何工作以及ImageObserver的作用是什么
- 2. ImageObserver类没有找到
- 3. Clojure/Swing/Java中的BufferedImage&ImageObserver问题
- 4. 在Java Applet中绘制图像和ImageObserver
- 5. java ImageObserver停止更新动画gif
- 6. 什么“?”做?什么是__FILE__?
- 7. 什么是<NS0:什么?
- 8. 什么是setDetailItem:做什么?
- 9. 什么是纯SVG和什么是SMIL?
- 10. 春天 - 什么是豆,什么不是?
- 11. 什么是PPC,这是什么意思?
- 12. 是什么代码是什么意思?
- 13. 什么是session_reset()到底是什么?
- 14. 是什么!<是什么意思?
- 15. 是什么意思:是什么意思?
- 16. 这是什么`_time_independent_equals`是什么意思?
- 17. 什么是.size是什么意思
- 18. 什么是()=> {}是什么意思?
- 19. 什么是Ext.apply xtype是什么意思?
- 20. 什么是$ http timeout是什么意思?
- 21. 是什么??('')。?。?`是什么意思?
- 22. dir是什么? dir +“/”:“”是什么意思?
- 23. 什么是AjaxAdapter和什么是query()?
- 24. 什么是stringWithFormat:@“%@ - 1”是什么意思?
- 25. Django:什么是`sys.path`应该是什么?
- 26. 什么是MIME?它到底是什么?
- 27. 什么是PHPCI - 什么是构建?
- 28. 什么是流量?什么是`initialize`在做什么?
- 29. 什么是JSTL?什么是JSP标签库?有什么区别?
- 30. 究竟是什么ObjectFactory是什么,它用于什么?
你是如何绘制图像的?你能提供一些代码吗? – Heskja
我使用的是一个BufferedImage,所以我只是将它设置为null,但是由于我遇到了它,我想找到一个解释。我搜索了Google,但找不到解释它究竟是什么。 – Troubleshoot