1

我目前正在为 2D、基于瓷砖的游戏制作地图编辑器。当我创建一个新地图时,tileset 被加载到内存中并显示在 JScrollPane 内的 JPanel 中,因此我可以选择我想要绘制的图块。

起初,我只是绘制完整的图像,但滚动速度很慢,所以现在我只绘制它的可见部分并且效果很好。我担心的是内存使用情况,因为图块集非常大。我没有收到任何 OutOfMemory 错误,但我想尽我所能优化一切。

我尝试将 ImageReader 与 ImageReadParam.setSourceRegion(); 一起使用 并且使用的内存要少得多,但是滚动会变慢,并且滚动时图像会像疯了一样闪烁-可能是因为从磁盘读取图像需要一些时间。

那么,有没有一种快速加载大图像的一部分而不完全加载它的好方法呢?或者也许有一种方法可以完全加载它但以压缩的方式?

4

0 回答 0