我在MVC3中使用Web
Image来调整图像大小.基本上,这样做的目的是创建上载文件的缩略图.我无法控制文件的大小,因此我需要创建文件的缩略图以加快“预览”网站的速度.
我有一些文件需要上传和大小,它大约4Mb,这在上传时不是问题.我遇到的问题是创建缩略图.我首先上传文件,一旦保存在服务器上,我就为缩略图创建一个新的WebImage对象.
// Save a thumbnail of the file WebImage image = new WebImage(savedFileName); // Resize the image image.Resize(135,150,true); // Save the thumbnail image.Save(FileName); // <<--- Out of memory exception here // Dispose of the image image = null;
解决方法
由于WebImage中的错误,我不得不求助于以下代码:
// Save a thumbnail of the file byte[] fileBytes = System.IO.File.ReadAllBytes(savedFileName); System.Drawing.Image i; using (MemoryStream ms = new MemoryStream()) { ms.Write(fileBytes,fileBytes.Length); i = System.Drawing.Image.FromStream(ms); } // Create the thumbnail System.Drawing.Image thumbnail = i.GetThumbnailImage(135,() => false,IntPtr.Zero);