如何在c#中解决system.outofmemoryexception

时间:2017-02-21 06:36:28

标签: c#

当我们上传视频并点击按钮以使用此代码将视频转换为缩略图时,会产生错误 'System.OutOfMemoryException:内存不足。'

我们正在使用此代码

fpUplaodVideo.SaveAs(Server.MapPath("~/UploadFiles/SiteUserID_" + SiteUserID + "/UploadVideo/" + fpUplaodVideo.FileName));

错误将在此行发生

System.Drawing.Image img1 = System.Drawing.Image.FromFile(Server.MapPath("~/UploadFiles/SiteUserID_" + SiteUserID + "/UploadVideo/") + fpUplaodVideo.FileName);

2 个答案:

答案 0 :(得分:4)

System.Drawing.Image.FromFile将返回 OutOfMemoryException ,原因如下

  1. 该文件没有有效的图片格式。
  2. GDI +不支持文件的像素格式。

答案 1 :(得分:1)

Image.FromFile的MSDN documentation说明了这一点:

  

<强> OutOfMemoryException异常

     

该文件没有有效的图片格式。

     

-OR -

     

GDI +不支持文件的像素格式。

当然,这是对OutOfMemoryException的错误和荒谬的使用,但至少它是有记录的。

至于为什么抛出它,它非常简单 - 您正在尝试将视频文件作为图像文件加载。相同的文档显示支持以下格式:

  
      
  • BMP
  •   
  • GIF
  •   
  • JPEG
  •   
  • PNG
  •   
  • TIFF
  •   

我假设您的&#34; UploadVideo&#34;不是这些。事实上,我不确定为什么你认为这会产生缩略图。尝试寻找特定的库。这可能是一个好的开始: Thumbnail video C#