C# 通用GDI+;在image.save上出错

C# 通用GDI+;在image.save上出错,c#,image,gdi+,C#,Image,Gdi+,我已经为此奋斗了一个多小时。我读到这个错误通常是因为内存流在位图被处理之前被关闭,但在这里我没有处理任何东西。欢迎任何帮助 public Image GetImageFromBytes(byte[] imageBytes) { var ms = new MemoryStream(imageBytes); return Image.FromStream(ms); } public void ExportImage(byte[]

我已经为此奋斗了一个多小时。我读到这个错误通常是因为内存流在位图被处理之前被关闭,但在这里我没有处理任何东西。欢迎任何帮助

 public Image GetImageFromBytes(byte[] imageBytes)
    {
       var ms = new MemoryStream(imageBytes);
       return Image.FromStream(ms);
    }        

    public void ExportImage(byte[] imageBytes, String fileName)
    {
        var image = GetImageFromBytes(imageBytes);
        //  var resizedImg = GeneralHelper.ResizeImage(image,ImageWidth, ImageHeight) ;
        //  OverlayContactDetails(resizedImg);

        var path = Path.GetDirectoryName(fileName);

        if (!Directory.Exists(path))
            Directory.CreateDirectory(path);


        image.Save(fileName, ImageFormat.Jpeg);

    }
在.Save()-ing时引发异常(如标题所示)。下面是堆栈跟踪

  at System.Drawing.Image.Save(String filename, ImageCodecInfo encoder, EncoderParameters encoderParams)
   at System.Drawing.Image.Save(String filename, ImageFormat format)
   at AdCreator.ImageExport.ExportImage(Byte[] imageBytes, String fileName) in c:\Users\Paavum Ex Machina\Documents\Visual Studio 2012\Projects\AdCreator\AdCreator\ImageExport.cs:line 70
   at AdCreator.ExportController.ExportImage(Byte[] image, String filePath, String agentText) in c:\Users\Paavum Ex Machina\Documents\Visual Studio 2012\Projects\AdCreator\AdCreator\ExportController.cs:line 69
   at AdCreator.ExportController.Export(String outputFilename) in c:\Users\Paavum Ex Machina\Documents\Visual Studio 2012\Projects\AdCreator\AdCreator\ExportController.cs:line 44
   at AdCreator.Controller.ExportAds(Ad[] ads, String[] templates, String outputFileName) in c:\Users\Paavum Ex Machina\Documents\Visual Studio 2012\Projects\AdCreator\AdCreator\Controller.cs:line 104
   at AdCreator.Create.<>c__DisplayClass3.<button2_Click>b__1() in c:\Users\Paavum Ex Machina\Documents\Visual Studio 2012\Projects\AdCreator\AdCreator\Create.cs:line 173
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
在System.Drawing.Image.Save(字符串文件名、ImageCodeInfo编码器、EncoderParameters encoderParams)
位于System.Drawing.Image.Save(字符串文件名,图像格式)
在c:\Users\Paavum Ex Machina\Documents\Visual Studio 2012\Projects\AdCreator\AdCreator\ImageExport.cs中的AdCreator.ImageExport.ExportImage(字节[]imageBytes,字符串文件名):第70行
在c:\Users\Paavum Ex Machina\Documents\Visual Studio 2012\Projects\AdCreator\AdCreator\ExportController.ExportImage(字节[]图像,字符串文件路径,字符串代理文本)中的AdCreator.ExportImage(字节[]图像,字符串代理文本):第69行
在c:\Users\Paavum Ex Machina\Documents\Visual Studio 2012\Projects\AdCreator\AdCreator\ExportController.cs中的AdCreator.ExportController.Export(字符串outputFilename)处:第44行
在c:\Users\Paavum Ex Machina\Documents\Visual Studio 2012\Projects\AdCreator\AdCreator\Controller.cs中的AdCreator.Controller.ExportAds(Ad[]ads,String[]templates,String outputFileName)中
在c:\Users\Paavum Ex Machina\Documents\Visual Studio 2012\Projects\AdCreator\AdCreator\Create.cs:第173行中的AdCreator.Create.c\u显示class3.b\u 1()
在System.Threading.Tasks.Task.InnerInvoke()中
在System.Threading.Tasks.Task.Execute()中

stacktrace怎么办?在哪一行抛出异常?这将在您第二次保存到同一文件名时失败。您必须处理映像才能释放文件上的锁。对image变量使用using语句。@HansPassant:实际上每次都会失败。刚刚尝试使用,我得到了完全相同的错误:用某种图像查看器缓慢地观看图像当然也可以做到这一点。我只能看到你明显做错了什么。@DavidSarmiento你确定
文件名不存在吗?