我正在爲Eclipse開發一款應用程序,希望知道是否有任何方法可以保存用圖形對象繪製的圖片......該應用程序涉及使用Graphics.Frame繪製餅圖。我打開屏幕來顯示圖表,但下次嘗試通過調用屏幕來創建圖表時,它會出現故障。因此,我想知道是否可以將圖表保存爲圖像......這種方式我不必每次打開屏幕時不斷重複繪製...請幫助...提前致謝!將圖形另存爲圖像?
1
A
回答
0
我明白你正在使用java.awt.Graphics
類,對吧?確保您只繪製AWT事件線程。 使用
SwingUtilities.invokeLater(new Runnable() {
public void run() {
// YOUR CODE
}
});
運行事件線程您保存代碼。如果您嘗試從另一個線程保存,如果圖像未完全繪製,圖像可能會變形。
+0
感謝您的回答Stephan!但是當我使用invokeLater()時,圖表沒有顯示出來...當它出現時,它已經很晚了......您認爲這是因爲我在其他部分早些時候調用了invokeLater()應用程序? – dragonfly
0
我不知道黑莓API,但你可以採取其他方法來解決你的問題。你可以做屏幕外渲染。創建一個BufferedImage
,獲取對其Graphics
對象的引用,進行渲染,然後將BufferedImage
保存爲png。
例如:
int width = 200, height = 200;
// TYPE_INT_ARGB specifies the image format: 8-bit RGBA packed
// into integer pixels
BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D ig2 = bi.createGraphics();
// Draw your chart
ImageIO.write(bi, "PNG", new File("yourImageName.PNG"));
這樣你就可以完成所有的繪圖一次,將其保存爲一個文件,或者只是在內存中(取決於你所需要的),然後你只需要要麼加載圖像從文件中或在屏幕上執行g.drawImage()。
但正如我之前說過的,我不知道這是否適用於Blackberry API,它確實適用於桌面環境中的JDK/JRE。
相關問題
- 1. 將JPanel另存爲圖像
- 2. 在matlab中,如何將圖形保存爲圖像,就像在圖形窗口中使用「另存爲...」一樣?
- 3. JavaScript將元素另存爲圖像或Extjs 4.x另存爲圖像
- 4. 將WPF UserControl另存爲矢量圖像
- 5. 將GoogleGraph另存爲矢量圖像
- 6. 將畫布另存爲圖像
- 7. 將畫布另存爲圖像Internet Explorer
- 8. JIT Spacetree將標籤另存爲圖像
- 9. 使用OpenCV將圖像變形爲另一個圖像的四邊形區域
- 10. 將圖形保存到緩衝圖像
- 11. 將圖像轉換爲圖形在c#
- 12. 如何將圖像保存爲圖像
- 13. 如何將面板中的圖形(如矩形,圓形)保存爲圖像?
- 14. 將圖表另存爲PDF
- 15. 將矩形圖像重新調整爲方形圖像
- 16. 將矩形圖像繪製/翹曲爲四邊形圖像
- 17. 如何將矩形圖像設置爲圓形圖像
- 18. PHP - 如何將矩形圖像轉換爲方形圖像?
- 19. 將方形圖像轉換爲矩形
- 20. 將matplotlib圖形保存爲數據庫中的圖像字段
- 21. 將Java 2d圖形圖像保存爲.png文件
- 22. 如何將圖形對象保存爲C#中的圖像?
- 23. cytoscape將圖形保存爲按鈕圖像
- 24. 將創建的圖形保存爲圖像
- 25. 如何使用SurfaceView將圖形繪製保存爲圖像?
- 26. 自動將圖形保存爲Matlab中的圖像文件
- 27. JUNG:將圖形保存爲圖像文件
- 28. 將neo4j圖形保存在瀏覽器中作爲圖像
- 29. 如何將圖表另存爲服務器上的圖像
- 30. CF:將Fusioncharts圖表另存爲電子郵件圖像
最好修復使代碼「干擾」的錯誤,而不是序列化/恢復圖形以解決問題。順便說一句 - 請解決那些粘性'?' &'。'鍵。一個'?'表示一個問題 - 2或更多通常表示一個bozo。 –