`
wostyh
  • 浏览: 77194 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

ASP.NET输出PNG图片时出现GDI+一般性错误的解决方法

阅读更多

偶原来的用ASP.NET生成验证码图片时用的是JPG格式,今天想把它改成PNG格式的,结果就出现GDI+一般性错误,查了N久资料,才发现解决的办法,对分享此解决办法的网友深表感谢

Response.Clear();
Response.ContentType = "image/PNG";
img.Save(Response.OutputStream, ChartFormat.Png);
竟然出现异常,是GDI+一般性错误。但是如果格式是Response.ContentType = "image/jpeg";
就不会报错。


好在以前遇到过,改成
Response.ContentType = "image/PNG";
 using (MemoryStream ms = new MemoryStream())
 {
        img.Save(ms, ChartFormat.Png);
        Response.OutputStream.Write(ms.GetBuffer(), 0, (int)ms.Length);
 }

就可以输入png图片了。
这是由于Response.OutputStream这个流的无法往回读取造成的,也就是它的CanSeek属性
是false。png图像生成的时候不像jpeg,不是流式的,已经写入的就不再管了,而是需要往回
不断地写入结构数据。但是response流无法往回seek,所以直接用就不行了。改成一个可以
seek的MemoryStream,先生成好png图片,然后再输出到response流。

分享到:
评论

相关推荐

    ASP.NET+H5+Zxing+js+sweetalert2 实现手机端和PC端调用摄像头进行二维码扫一扫(已修复错误)

    本程序使用VS2019进行制作,利用ASP.NET+H5+Zxing+js+sweetalert2 实现手机端和PC端调用摄像头进行二维码扫一扫,实现前端采集数据,后端进行分析并向前端传值,pc端可运行,手机端鸿蒙系统,安卓,IOS4.X以上均可...

    ASP.NET后台通用MVC+EF6+Bootstrap开发框架

    ASP.NET后台通用MVC+EF6+Bootstrap开发框架,全部采用最新的技术,后代代码采用IOC+AOP+DDD模式,灵活性强。绝对的asp.net开发者的福利,绝对的asp.net开发者的福利,绝对的asp.net开发者的福利,绝对的asp.net...

    ASP.NET Core2.2+Vue.js+mysql+redis开发的网站框架

    它是ASP.NET的全新版本,具有模块化、轻量级和高性能的特点,支持.NET Core和.NET Framework两种运行时环境。在ASP.NET Core 2.2中,引入了许多新特性,如HTTP/2支持、Kestrel服务器的性能优化、健康检查服务以及更...

    基于ASP.NET 8.0 MVC + API + SqlSugar + LayUI的框架,源代码完全开源,可以帮助你解决C#.NET项目的重复工作!

    .NET和Layui集成的最佳实践;敏捷开发优选框架,自带权限包含字段、数据权限,自带流程表单设计,基于多数据库的多租户等。 项目版本包含.Net4.5、.NetCore3.1、.Net5、.Net6、.net8。ORM包含Chloe和SqlSugar

    .net生成缩略图及水印图片时出现GDI+中发生一般性错误解决方法

    这种方法确保了在处理图像时不会锁定文件,从而解决了因资源未释放导致的“GDI+中发生一般性错误”。 接下来,我们可以进一步探讨如何在.NET中生成缩略图和添加水印。生成缩略图通常包括读取原图、计算缩放比例、...

    Asp.net MVC快速开发框架源码 mvc+Bootstrap

    它结合了ASP.NET的便利性和Model-View-Controller(MVC)的设计模式,提供了一个灵活、测试友好且可控制的开发环境。Bootstrap则是Twitter开发的一个开源前端框架,用于简化网页设计和移动设备响应式布局。 在Asp...

    asp.net利用gdi+生成验证码

    在网页部分,我们将在ASP.NET的代码-behind文件中实例化这个验证码类,并在需要显示验证码的地方调用其方法,生成并输出图像。这通常涉及到创建HTTP响应,设置正确的MIME类型(如“image/jpeg”或“image/png”),...

    asp.net的图片上传+加印文字+压缩图片

    在这个场景中,我们关注的是ASP.NET中的图片上传功能,以及如何在上传的图片上加印文字和对图片进行压缩。 1. **图片上传**: 在ASP.NET中,图片上传通常涉及到HTML表单(form)的`<input type="file">`元素,用户...

    Asp.Net MVC4 + Oracle + EasyUI + Bootstrap 第一章

    Asp.Net MVC4 + Oracle + EasyUI + Bootstrap 第一章 --操作数据 1、 关于HtmlHelper和UrlHelper 因为大部分的web请求的目标都是向客户端发送HTML代码。因此,Asp.Net MVC也是 为我们创建HTML提供了各种帮助。...

    asp.net学籍注册+验证+头像+输出

    ASP.NET是一种基于.NET框架的服务器端编程环境,用于构建动态Web应用程序。在这个“asp.net学籍注册+验证+头像+输出”的项目中,我们主要关注几个关键知识点:用户照片上传、图片缩略图显示、表单验证、账号验证以及...

    GDI+图像程序设计(PDF & 源码 -电子工业出版社)

    本书是一本为.NET开发人员讲授如何编写Windows和Web图形应用程序的专著,书中全面介绍了GDI+和Windows图形程序设计的基本知识和GDI+图形程序设计的各个方面。 本书适合于开发GDI+图形应用程序的初、中级程序员...

    Asp.Net Core 3.1 MVC+EF Core +SqlSugar ORM框架实例 多层架构示例Demo

    【Asp.Net Core 3.1 MVC】 Asp.Net Core 3.1 MVC 是一个高性能、跨平台的开发框架,用于构建Web应用程序。它基于模型-视图-控制器(MVC)设计模式,提供了清晰的分层架构,使得代码更易于测试和维护。在Asp.Net Core...

    开源:ASP.NET MVC+EF6+Bootstrap开发框架

    这些系统的共同特点是需要处理大量数据,进行复杂的业务逻辑运算,并且需要良好的用户体验,ASP.NET MVC+EF6+Bootstrap的组合能够满足这些需求,提供高效、可扩展和用户友好的解决方案。 总结来说,"开源:ASP.NET ...

    Asp.net gdi+画圆柱

    在.NET框架中,ASP.NET是用于构建Web应用程序的平台,而GDI+(图形设备接口加)是Windows应用程序中用于创建图形和图像处理的一种技术。本文将深入探讨如何使用ASP.NET结合GDI+来实现画圆柱的功能,这对于创建动态...

    asp.net mvc2.0+Spring.net1.3+Ibatis.net+memcached文档

    asp.net mvc2.0+Spring.net1.3+Ibatis.net+memcached的帮助,里面有spring.net和asp.netMVC的教程和一个贯穿案例。希望对大家有所帮助。绝对值这个分。

    asp.net 采用vb.net GDI汇图

    在提供的WebDrawSamp压缩包中,可能包含了示例代码、图片或其他资源,帮助开发者了解如何在ASP.NET中使用VB.NET和GDI+创建图表。通过学习和实践这些代码,你可以更好地掌握这一技术,并将其应用到实际项目中。 总结...

    ASP.NET MVC2+Spring.net1.3+Nhibernate1.2.1+Jquery完美框架

    ASP.NET MVC2+Spring.NET1.3+NHibernate1.2.1+jQuery 是一个高效且灵活的开发框架,常用于构建企业级Web应用程序。这个框架集合了多种技术,旨在提高开发效率,提供更好的代码组织和可测试性。 **ASP.NET MVC2**: ...

    基于asp.NET的新闻发布系统(源码+数据库).zip

    6. 错误处理和调试:ASP.NET提供了丰富的错误处理机制,包括自定义错误页面、全局异常处理等,确保在遇到问题时能够提供反馈并进行调试。 7. 性能优化:通过缓存策略、输出缓存、数据缓存等手段,可以提高系统的...

Global site tag (gtag.js) - Google Analytics