Java加载图像更快

时间:2012-05-15 03:52:12

标签: java performance image swing

我正在尝试用Java编写一个简单的轻量级图像浏览器,目前我正在使用ImageIO.read(new File(/* PATH_TO_IMAGE */))来加载图像。

问题是,加载10个JPEG需要10467毫秒。这似乎很慢,特别是当我计划可能加载数百张图像时。

有没有更快的方法来加载它们?

另外,我通过覆盖JPanel中的paintComponent并使用Graphics2D绘制缩略图来绘制缩略图,如果这有任何区别的话。 (并随意建议更好的方法来做到这一点)

2 个答案:

答案 0 :(得分:3)

如果要显示缩略图,则应考虑创建和存储缩略图。

您不能指望每秒能够加载数百个6 MB的文件。缩略图大约为50 KB,加载速度更快(“加载”从硬盘读取并在内存中解码)。

答案 1 :(得分:3)

根据@Thomas Mueller关于缩略图的建议,您可以将繁重的工作卸载到SwingWorker,显示为here。有关重新采样的信息,请参阅此answer