0
如何將JPanel
轉換爲File
?我的面板有一個移動Image
,我想獲得單個幀。如何將JPanel轉換爲文件?
如何將JPanel
轉換爲File
?我的面板有一個移動Image
,我想獲得單個幀。如何將JPanel轉換爲文件?
您可以在不同時間點創建面板的BufferedImage
,然後將圖像保存到文件中。
這種情況的基本邏輯是:
BufferedImage image = new BufferedImage(panel.getWidth(), panel.getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = image.createGraphics();
panel.print(g2d);
g2d.dispose();
ImageIO.write(...);
退房的Screen Image類實現上述功能的簡便方法。
當然這不會很有效率,因爲您需要爲每個幀都創建一個全新的圖像。
您最好使用print或printAll來代替paint,因爲它不涉及雙緩衝......並且不會在屏幕上未實現組件時拋出異常; ) – MadProgrammer
@MadProgrammer,不使用雙緩衝區是有道理的。 (代碼已更改)。如果組件沒有實現,雖然存在繪畫問題,但我從來沒有遇到異常(平臺差異?)問題。基本上我發現組件的大小是(0,0),所以沒有什麼可以繪製的。 ScreenImage類通過調用佈局代碼來處理您的尺寸。 – camickr
我已經通過'NullPointerException'獲得了它,但它可能與它沒有添加到任何父級的事實有關,所以它在設置雙緩衝區時遇到了問題......或者某種東西,我只是在這種情況下發現'print'和'printAll'更可靠:P – MadProgrammer