2012-05-15 107 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