asp.net - gdi+ 中发生一般性错误。保存图像时

标签 asp.net

尊敬的专家,我在保存图像时遇到错误,代码如下

  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/

相关文章:

asp.net - dns 测试在正确的 dns asp.net 上失败

c# - 如何从 Gridview 导出到 Excel

asp.net - ASP.NET Web 表单中的 jQuery 验证插件

asp.net - Silverlight中的音频切割器

c# - 如何将可能是 Windows 1252 'ANSI' 编码的上传文件转换为 .NET 中的 UTF8?

c# - 如何在 jquery easy ui CRUD DataGrid 中绑定(bind) Web 服务

c# - 找不到方法 : 'System.Collections.Generic.IList` 1<Nop. Services.Cms.IWidgetPlugin>

c# - 具有社交登录且无 MVC 依赖项的 ASP.NET WebAPI 2.2 SPA

asp.net - Parent.FindControl() 不工作?

c# - 报告框架背后的基本原理