GDI +用这个“通用错误”杀了我

时间:2010-12-23 14:32:15

标签: .net asp.net image-processing gdi+

老实说,在ASP.Net中运行GDI +的是什么?它以如此神秘的方式工作,错误描述非常神秘: GDI +中发生了一般错误。

哦,非常感谢你现在我确切地知道出了什么问题......不是。

看看导致错误的代码,也许你可以帮助我?

var fileStream = fuImage.FileContent;
var imageStream = new MemoryStream();

imageStream.SetLength(fileStream.Length);
fileStream.Read(imageStream.GetBuffer(), 0, (int)fileStream.Length);

imageStream.Flush();
fileStream.Close();

using (var image = System.Drawing.Image.FromStream(imageStream))
{
    using (Bitmap bmp = new Bitmap(image.Width, image.Height))
    {
        using (Graphics gr = Graphics.FromImage(bmp))
        {
            gr.DrawImage(image, 0, 0);
            bmp.Save(path);
        }
    }
}

这实际上是我的代码的简化版本,但它仍然会导致错误。 fuImage是一个FileUpload控件(.NET Web Forms)。

如果您收到此错误,请确保存在要保存文件的完整路径...或者您可能会收到此“一般错误”消息。

1 个答案:

答案 0 :(得分:6)

将文件复制到MemoryStream并阅读。
来自FileUpload的Stream是不可搜索的,GDI +不喜欢它。