我需要从文件夹中读取所有图像文件并将其保存到压缩大小的另一个文件夹中。但是,我的代码很好地压缩了这些图像,但它在695图像文件“内存异常“。这是我的code.there是在2000年左右的图像内存不足异常从文件夹中读取图像时
List<string> files = new List<string>();
files = Directory.GetFiles(Server.MapPath("../imgres") + "\\products\\", "*.jpg").ToList();
for (int k = 0; k < files.Count; k++)
{
if (File.Exists(files[k].ToString()))
{
string SaveLocation1 = "";
System.Drawing.Image thumbnail;
System.Drawing.Image smallsize;
System.Drawing.Image originalimg;
originalimg = System.Drawing.Image.FromFile(files[k].ToString());
thumbnail = originalimg.GetThumbnailImage(110, 110, new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero);
smallsize = originalimg.GetThumbnailImage(47, 47, new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero);
SaveLocation1 = Server.MapPath("../imgres/products") + "\\Thumbnail\\" + Path.GetFileName(files[k].ToString());
thumbnail.Save(SaveLocation1);
thumbnail.Dispose();
SaveLocation1 = Server.MapPath("../imgres/products") + "\\smallsize\\" + Path.GetFileName(files[k].ToString());
smallsize.Save(SaveLocation1);
smallsize.Dispose();
}
}
你不在'originalimg'上调用'Dispose'并且内存不足? [Hm ...](http://msdn.microsoft.com/en-us/library/yh598w02.aspx) –
尝试调用'originalimg.Dispose();'也。 – Heslacher
可能重复:http://stackoverflow.com/questions/1108607/out-of-memory-exception-on-system-drawing-image-fromfile – pordi