我有一个非常大的高分辨率地图,我想在应用程序中使用它(图像大小约为 80 mb)。
我想知道以下内容:
- 如何以最佳方式加载此图像?我知道加载图像需要几秒钟(这没关系),但我想通知用户进度。我想使用确定的模式并以某种方式
JProgressBar
向用户展示。这应该反映已加载的字节数或类似的东西。是否有任何图像加载方法可以提供此功能(如ImageIO.read()
)? - 因为地图的分辨率非常高,我想为用户提供滚动以放大和缩小。我怎样才能以最好的方式做到这一点?我知道
BufferedImage
这样一个大文件重新调整标准方式需要很长时间。有没有有效的方法来做到这一点?
谢谢您的意见!
亲切的问候,
Héctor van den Boorn
ps 图像将绘制在 JPanel 的画布上。
嗨,安德鲁,非常感谢您的帮助;一切都很完美,加载速度很快。如果没有您的专业知识和解释,我仍然会为此工作,因此您已经公平地赢得了赏金。
我所做的是以下内容;使用 imagemagick 我创建了多个不同分辨率的图像,并且在执行开始时我只加载了最小的 res。图片。其余的加载在单独的线程中,因此不会停止执行。使用您提供给我的信息,然后我在放大或缩小时使用适当的图像。我对使用瓷砖有点怀疑,因为我需要在地图上绘制自己的图像,而我在你告诉我要使用的外部 jar 中找不到绘制功能,所以我最终使用了一些简单的东西;缩放或平移时,重新缩放模式设置为快速,当您不缩放或平移时,重新缩放设置为平滑像素完美图像(就像您建议的那样),但事实证明这足够快,我不'
所以再次感谢,一切都很好:)