加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

在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分钟(取决于机器).我想知道是否有任何方法可以通过使用不同的技术来改善这种性能?

任何帮助是极大的赞赏.

解决方法

保存缩放的实例并直接加载它们.硬盘空间很便宜.这不会影响生成拇指的初始成本,但任何后续出现都将是闪电般快速的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读