我试图在列表中加载大约60张图片。每张图片大约1MB。对于20张照片来说没有问题,但是在上面的代码行中,我得到了内存不足的异常。我搜索了很多相关的问题,一些说明“使用”关键词和流,但由于我是初学者,有人可以帮助我。Imagefrom.File()。内存不足异常
Image image = Bitmap.FromFile(Filename);
这里是我的代码
private void LoadBtn_Click_1(object sender, EventArgs e)
{
OpenFileDialog newDialog = new OpenFileDialog();
if (newDialog.ShowDialog() == DialogResult.OK)
{
images.Clear();
string dirPath = System.IO.Path.GetDirectoryName(newDialog.FileName.ToLower());
DirectoryInfo di = new DirectoryInfo(dirPath);
FileInfo[] finfos = di.GetFiles("*.*");
foreach (FileInfo fi in finfos)
{
string ext = fi.Extension.ToLower();
if ((ext.Equals(".png")) || (ext.Equals(".jpg")) || (ext.Equals(".tif")) || (ext.Equals(".gif")))
{
string Filename = fi.FullName;
Image image = Bitmap.FromFile(Filename); //exception occurs HERE
images.Add(image);
//this.imageList1.Images.Add(image);
//image.Dispose();
}
}
}
pictureBox3.Image = images[0];
}
我使用C#,Windows窗体。感谢
看看http://stackoverflow.com/questions/2610416/is-there-a-reason-image-fromfile-throws-an-outofmemoryexception-for-an-invalid-i – 2013-03-23 07:06:54
感谢您的回复,但没有答案在那里符合我的问题。我的文件没有损坏,问题必须真正处理所有文件的大小。正在考虑是否有关于这种记忆问题的方式,因为我已经看到了完美的图片浏览器,而这正是我想要的。例如,这个项目“https://sourceforge.net/projects/picturefilter/”确实是我想要的,但我无法访问代码。只有.exe文件可用 – Basco 2013-03-23 07:30:01