2012-05-15 105 views
2

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

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

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

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

+0

JPEG有多大? – thagorn

+0

@thagorn在2到6 MB之间。 – Josh

+0

您是否正在串行加载文件? –

回答

3

如果你想显示缩略图,你应该考虑创建和存储缩略图。

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

3

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