Java Swing BufferedImage与直接绘图

时间:2017-09-26 12:31:56

标签: java swing

我的情景基本上是我绘制了一个水平和垂直刻度的数学类型图。对于任何给定的窗口大小,标度保持静态。如果用户调整窗口大小,我只需要更改比例。因此,我在讨论是否在BufferedImage上绘制比例并调用drawImage比执行所有单独的drawXXX调用以在每个绘制上构建比例更好。后者听起来效率不高,因为用户可能会在启动时调整一次窗口大小(如果是这样),但权衡将是维持可能大到4K显示分辨率的BufferedImage所需的内存

如果有人有任何想法/意见/建议,我将不胜感激

1 个答案:

答案 0 :(得分:0)

假设您将TYPE_INT_ARGB用于BufferedImage格式,则图片为" 4k"分辨率(3840x2160)大小为33.18 MB(大小字节)+标题信息可能只有几个字节。

所以,真的,它不会成为一个记忆问题。但是,请记住,无论哪种方式,每次调用BufferedImage时,您都必须重新绘制Graphicspaint()对象。确实,我认为效率没有显着差异。

我在这里看到的唯一真正的区别是,使用BufferedImage,您可以获得其内置调整大小功能的额外舒适度。通过这种方式,您可以始终以相同的方式将缩放比例绘制到图像上(不必根据窗口大小进行计算),然后将BufferedImage的大小调整为窗口大小,它会调整大小比例适合自己的窗户。