當您繪製圖像時,它需要圖像觀察者。從我目前瞭解的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