C# Image.from文件启动';跳过';文件夹
我正在将一组文件加载到一个C# Image.from文件启动';跳过';文件夹,c#,C#,我正在将一组文件加载到一个列表视图中,并使用Image.FromFile()和.Width和.Height在指定列中显示每个文件的分辨率。但是,每当我加载超过几个文件时,这个方法就会开始跳过文件。首先,假设50个文件都已正确加载,但此后会跳过越来越多的文件 是什么导致了这个问题,有没有更好的替代方法?这种方法也大大降低了加载过程的速度,所以希望这个过程能加快一点 编辑:对不起。。。以下是相关代码: private void AddItem(string file) { FileInfo
列表视图中,并使用Image.FromFile()
和.Width
和.Height
在指定列中显示每个文件的分辨率。但是,每当我加载超过几个文件时,这个方法就会开始跳过文件。首先,假设50个文件都已正确加载,但此后会跳过越来越多的文件
是什么导致了这个问题,有没有更好的替代方法?这种方法也大大降低了加载过程的速度,所以希望这个过程能加快一点
编辑:对不起。。。以下是相关代码:
private void AddItem(string file)
{
FileInfo fi = new FileInfo(file);
ListViewItem item = new ListViewItem(fi.FullName);
try
{
Image img = Image.FromFile(fi.FullName);
item.SubItems.Add(string.Format("{0} x {1}", img.Width, img.Height));
}
catch { }
((ListView)sender).Items.Add(item);
}
try/catch方法旨在防止非映像文件出错。然而,他们似乎也对跳绳问题负有“责任”。当我禁用它们时,我得到一个“内存不足”错误,这似乎是这里的真正原因。你真的应该处理![]()
。啊。。。当然是的,这解决了内存问题。速度怎么样?有没有办法加快加载过程?好吧,为了提高速度,你能打开图像文件中的元数据并解析它而不是解压缩整个图像吗?例如,看看JFIF和PNG文件格式:您可能能够读取所需的信息,而无需解压缩开销。对于JPEG,它们不直接包括文件大小;您必须查看Adobe图像资源块。好的,我找到了以下解决方案:。它工作得很好:)再次感谢。;