首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c# .net,加载图像

c# .net,加载图像
EN

Stack Overflow用户
提问于 2012-04-10 21:12:53
回答 3查看 1.1K关注 0票数 1

我必须合并,让我们说大约100个图像(png文件)。问题是没有将它们组合在一起,这运行得足够快。但从存储中加载它们需要长达4秒。时间太长了。

所以我可以使用TPL或多线程,但是它仍然太慢了。我怎么才能加快速度呢?不幸的是,将所有图像保存在主存储中并不是一种选择。

图像非常小:从4KByte到10KByte

我以这种方式加载图像:

代码语言:javascript
复制
Image img = Image.FromFile(file);
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-10 22:47:02

有两个想法:

  • 如果大部分延迟确实来自IO,请压缩文件。根据它们的内容,即使是简单的ZIP压缩也可以减小它们的大小,从而减少需要读取的字节数。工作将是在内存中解压它们。我不知道这是否适用于你的情况,

  • ,Lazy load他们。你需要一直加载所有的100张图片吗?也许你可以先加载第一张图片,或者最重要的图片,让软件在后台加载完剩下的图片后再做其他的事情。
票数 1
EN

Stack Overflow用户

发布于 2012-04-10 21:22:26

在您的情况下,创建多个线程并不能提高I/O速度。这是关于你的硬盘的读写速度。

在4秒内加载100张高质量的图像看起来很正常。

票数 3
EN

Stack Overflow用户

发布于 2012-04-10 21:24:09

您如何加载您的图像文件?请分享你的一段代码。我的猜测是,你不是一次读取整个文件,而是像逐字节读取一样,直到EOF...优化文件加载的方法之一是将整个文件加载到预先分配的内存缓冲区中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10089487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档