【发布时间】:2012-05-22 13:31:16
【问题描述】:
我正在尝试用 Java 编写一个简单的轻量级图像浏览器,目前我正在使用ImageIO.read(new File(/* PATH_TO_IMAGE */)) 来加载图像。
问题是,加载 10 个 JPEG 需要 10467 毫秒。这似乎很慢,尤其是当我计划加载数百张图片时。
有没有更快的加载方式?
另外,我通过在 JPanel 中覆盖 paintComponent 并使用 Graphics2D 绘制缩略图来绘制缩略图,如果这有什么不同的话。
(并随时提出更好的方法来做到这一点)
【问题讨论】:
-
您是在串行加载文件吗?
-
如果你使用多个线程,你会得到什么样的数字?您是否考虑过自己先单独执行 i/o,以便了解执行原始 ImageIO 解码需要多长时间?
-
您的缩略图生成和绘图是否包含在您的原始计时中?
-
“在 2 到 6 MB 之间。” 像素有多大? JPEG 意味着一个 JPEG 和另一个 JPEG 之间可能有 10 倍的压缩系数,因此“文件大小”并不是衡量图像大小(以像素为单位)的好方法。
标签: java performance image swing