尊敬的专家,我在保存图像时遇到错误,代码如下
ClsImageManager objImgManager = new ClsImageManager();
Bitmap ImageBitmap = objImgManager.GetBitmapFromBytes(ImageData);
Response.ContentType = "image/tiff";
ImageBitmap.Save(Response.OutputStream, ImageFormat.Tiff);
ImageBitmap.Dispose();
Response.End();
当我使用 Image.format.jpeg 时,代码运行良好,但当我将其更改为 ImageFormat.Tiff 时,出现错误gdi+ 中发生一般错误。
最佳答案
您应该注意 GDI/GDI+(System.Drawing
命名空间)在 ASP.NET 中不受正式支持 - 请参阅 http://msdn.microsoft.com/en-us/library/system.drawing.aspx 中的“警告” .
应该使用 WIC 而不是 GDI+(参见 http://weblogs.asp.net/bleroy/archive/2009/12/10/resizing-images-from-the-server-using-wpf-wic-instead-of-gdi.aspx)
据说,许多人已经成功地在 ASP.NET 中使用 GDI+。最有可能的是,您应该尝试将图像保存到内存流(或文件)中,然后将保存的图像写入响应。有关详细信息,请参阅此链接:http://www.west-wind.com/weblog/posts/2006/Oct/19/Common-Problems-with-rendering-Bitmaps-into-ASPNET-OutputStream
另一个解决方法可能与用户帐户有关。显然,GDI/GDI+ 绑定(bind)到设备上下文(屏幕、打印机等),它们在服务帐户下可能不可用。因此,您可以尝试在一些普通用户帐户上运行您的 ASP.NET 代码,无论是否有帮助。
关于asp.net - gdi+ 中发生一般性错误。保存图像时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9599690/