在Java中处理图像时提高性能
发布时间:2020-12-15 04:57:49 所属栏目:Java 来源:网络整理
导读:我正在编写一个程序,其中包括一个图像文件夹(通常约2000个jpeg图像)调整它们的大小,并将它们添加到图像的时间轴.结果如下: 这样做很好,但是我这样做的方式似乎非常低效.处理这些图像的代码如下所示: public void setTimeline(VectorString imagePaths){ in
我正在编写一个程序,其中包括一个图像文件夹(通常约2000个jpeg图像)调整它们的大小,并将它们添加到图像的时间轴.结果如下:
这样做很好,但是我这样做的方式似乎非常低效.处理这些图像的代码如下所示: public void setTimeline(Vector<String> imagePaths){ int numberOfImages = imagePaths.size(); JLabel [] TotalImages = new JLabel[numberOfImages]; setGridPanel.setLayout(new GridLayout(1,numberOfImages,10,0)); Dimension image = new Dimension(96,72); if (imagePaths != null){ for(int i = 0; i <numberOfImages; i++){ TotalImages[i] = new JLabel(""); TotalImages[i].setPreferredSize(image); ImageIcon tempicon = new ImageIcon(imagePaths.elementAt(i)); Image tempimage = tempicon.getImage(); Image newimg = tempimage.getScaledInstance(96,72,java.awt.Image.SCALE_SMOOTH); ImageIcon newIcon = new ImageIcon(newimg); TotalImages[i].setIcon(newIcon); setGridPanel.add(TotalImages[i]); } } } 可以看出,此代码循环遍历每个图像路径,将其添加到标签并将其添加到面板 – 完全按照正确的输出执行. 但是,这样做的时间很长.对于2000张图像通常大约需要5分钟(取决于机器).我想知道是否有任何方法可以通过使用不同的技术来改善这种性能? 任何帮助是极大的赞赏. 解决方法
保存缩放的实例并直接加载它们.硬盘空间很便宜.这不会影响生成拇指的初始成本,但任何后续出现都将是闪电般快速的.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |