发布于 2016-05-25 13:48:30 | 136 次阅读 | 评论: 1 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

ASP.NET

ASP.NET 是.NET FrameWork的一部分,是一项微软公司的技术,是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术,它可以在通过HTTP请求文档时再在Web服务器上动态创建它们。 指 Active Server Pages(动态服务器页面) ,运行于 IIS(Internet Information Server 服务,是Windows开发的Web服务器)之中的程序 。


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

Response.Clear(); 
Response.ContentType = "image/PNG"; 
img.Save(Response.OutputStream, ChartFormat.Png); 

竟然出现异常,是GDI+一般性错误。但是如果格式是
Code:

Response.ContentType = "image/jpeg"; 

就不会报错。
好在以前遇到过,改成
Code:

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流。

最新网友评论  共有(1)条评论 发布评论 返回顶部
hdtgfal 发布于2016-07-21 08:01:57
感谢
支持(0)  反对(0)  回复

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务