首页 新闻 会员 周边

asp.net 程序中怎么使用GDI绘图?

0
悬赏园豆:5 [已解决问题] 解决于 2012-07-17 08:50

我想在aspx、页面实现图片上传的同时生成一大一小两张图片,生成图片的方法谁知道啊,我找了很多资料都是有关winform的,网页和winform的不太一样,解决不了,该怎么办啊?

kdkler的主页 kdkler | 初学一级 | 园豆:154
提问于:2011-06-14 18:35
< >
分享
最佳答案
0

public class MonthlyReportHanlder : IHttpHandler
{

#region IHttpHandler Members

public bool IsReusable
{
get { return false; }
}

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType
= "image/jpeg";
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
context.Response.BufferOutput
= false;

string year = context.Request["Year"];
string kpi1 = context.Request["kpi1"];
string kpi2 = context.Request["kpi2"];

var entities
= new YearReport().GetData(year);

var image
= this.GenerateImage(entities, kpi1, kpi2);

image.Save(context.Response.OutputStream, ImageFormat.Jpeg);
image.Dispose();
}

#endregion

private Image GenerateImage(IList<YearEntity> entities, string kpi1, string kpi2)
{

Image image
= new Bitmap(w, h, PixelFormat.Format32bppArgb);

Graphics g
= Graphics.FromImage(image);
g.SmoothingMode
= SmoothingMode.AntiAlias;


Rectangle rect
= new Rectangle(0, 0, image.Width, image.Height);

g.FillRectangle(b, rect);


g.DrawRectangle(p,
new Rectangle(0, 0, rect.Width - 1, rect.Height - 1));

g.Dispose();

return image;
}
}

这是我在ASP.NET项目中动态生成图片的代码,为了看清结构,我把一些无关的代码删除了,你将就着参考下吧

收获园豆:3
think8848 | 菜鸟二级 |园豆:374 | 2011-06-14 20:17
其他回答(2)
0

没太大差别,都是操作Graphics,唯一的区别就是输出显示的方式不一样,Winform里面可以直接显示到窗体上,而asp.net里就需要把图片通过http请求输出才行,就这点比较麻烦
你可以去搜到一些asp.net生成验证码的文章,里面有输出Bitmap的代码,还有部分GDI+的代码
如果你单纯想学GDI+的话,建议你直接用winform还方便点,asp.net里面输出Bitmap的代码是一样的,你可以在winform里测试好后直接迁移到asp.net里,只需要改下输出Bitmap的方式就可以了

收获园豆:2
无泪之魂 | 园豆:287 (菜鸟二级) | 2011-06-15 17:09
0

我的博客已有一片自己画的验证码,你可以看一下,看看对你有用吗?

木木代码人生 | 园豆:245 (菜鸟二级) | 2011-06-30 16:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册