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

c# – 加速加载图像列表

发布时间:2020-12-15 08:24:57 所属栏目:百科 来源:网络整理
导读:我正在加载一个List Image来自约250张图片的文件夹.我做了一个DateTime比较,加载这250个图像需要整整11秒.那个地狱很慢,我非常想加快速度. 图像在我的本地硬盘上,甚至不是外部硬盘. 代码: DialogResult dr = imageFolderBrowser.ShowDialog();if(dr == Dial
我正在加载一个List< Image>来自约250张图片的文件夹.我做了一个DateTime比较,加载这250个图像需要整整11秒.那个地狱很慢,我非常想加快速度.

图像在我的本地硬盘上,甚至不是外部硬盘.

代码:

DialogResult dr = imageFolderBrowser.ShowDialog();
if(dr == DialogResult.OK) {

    DateTime start = DateTime.Now;

    //Get all images in the folder and place them in a List<>
    files = Directory.GetFiles(imageFolderBrowser.SelectedPath);
    foreach(string file in files) {
        sourceImages.Add(Image.FromFile(file));
    }
    DateTime end = DateTime.Now;

    timeLabel.Text = end.Subtract(start).TotalMilliseconds.ToString();
}

编辑:是的,我需要所有的照片.我正在计划的事情是将每个中心的30个像素柱取出并从中制作出新的图像.有点像360度的图片.只是现在,我只是用随机图像进行测试.

我知道可能有更好的框架可以做到这一点,但我需要首先工作.

EDIT2:切换到秒表,差别只有几毫秒.还尝试使用Directory.EnumerateFiles,但没有任何区别.

编辑3:我在32位Win7客户端上运行.NET 4.

解决方法

由于加载图像同时执行文件IO和CPU工作,因此您应该通过使用多个线程获得一些speadup.

如果您使用的是.net 4,那么使用任务将是最佳选择.

(编辑:李大同)

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

    推荐文章
      热点阅读