2017-09-26 72 views
0

我的場景基本上是我正在繪製水平和垂直刻度的數學類型圖。對於任何給定的窗口大小,比例保持不變。如果用戶調整窗口大小,我只需要更改比例。因此,我在辯論是否在BufferedImage上繪製比例尺並調用drawImage要比完成各個drawXXX調用來構造每個油漆上的比例更好。後者聽起來不太有效,因爲用戶可能會在啓動時重新調整窗口大小(如果是),但是折衷將是維持BufferedImage所需的內存,該緩衝圖像可能大至4K顯示分辨率Java Swing BufferedImage vs直接繪圖

如果有人有什麼想法/意見/建議,我將不勝感激聽到他們

回答

0

假設你將使用TYPE_INT_ARGBBufferedImage格式,它的形象是「4K」分辨率(3840X2160)的的尺寸就達到33.18 MB的(這是大型字節)+也許幾個字節的標題信息。

所以,真的,它不會是那麼多的記憶問題。但是,請記住,無論哪種方式,每次調用paint()時,都必須重繪爲BufferedImageGraphics對象。我的確看到效率沒有顯着差異。

我在這裏看到的唯一真正的區別是,使用BufferedImage可以獲得其內置調整大小功能的額外舒適度。通過這種方式,您可以始終以相同的方式將您的比例繪製到圖像上(不需要根據窗口大小進行計算),然後將BufferedImage調整爲窗口大小,並且它負責調整比例以調整窗口的大小。