在web窗体中绘图和在windows窗体中绘图差别不大,如果有在windows窗体中绘图的经验,那么很快就会掌握在asp.net下绘图。
今天给大家讲一个小的实例,希望给大家起到抛砖引玉的作用。
我们用asp.net提供的关于图形显示的类,在页面上绘制一个奥运会五环图。
最终效果如下:

此例子需要两个页面,draw.aspx主要是绘制和输出gif图像,show.aspx则通过一个Image控件来展现这个图像。
Draw.aspx.cs页面全部代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing.Imaging; //提供画GDI+图形的高级功能
using System.Drawing; //提供画GDI+图形的基本功能
public partial class _Draw : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Bitmap bmp = new Bitmap(400,300); //声明一个bitmap类,大小为500*500
Pen x = new Pen(Color.Blue, 5); //定义一蓝色画笔
Pen y = new Pen(Color.Black, 5); //定义一黑色画笔
Pen z = new Pen(Color.Red, 5); //定义一红色画笔
Pen m = new Pen(Color.Yellow, 5); //定义一黄色画笔
Pen n = new Pen(Color.Green, 5); //定义一绿色画笔
Graphics gc; //声明一 GDI+ 绘图面
gc = Graphics.FromImage(bmp); //从指定的 Image 创建新的 Graphics
SolidBrush sb = new SolidBrush(Color.Wheat); //定义一白色刷子
gc.FillRectangle(sb, 0, 0, 500, 500); //绘制背景图
FontFamily fontfamily = new FontFamily("隶书"); //定义一个字体类型
Point p = new Point(60,200); //定义一个点
Font font = new Font(fontfamily,50); //定义一字体
gc.DrawString("北京2008", font, Brushes.Red,p); //输出字符串"北京2008"
gc.DrawEllipse(x, 30, 30, 100, 100); //绘制奥运会5个环
gc.DrawEllipse(y, 150, 30, 100, 100);
gc.DrawEllipse(z, 270, 30, 100, 100);
gc.DrawEllipse(m, 90, 80, 100, 100);
gc.DrawEllipse(n, 210, 80, 100, 100);
Response.ContentType = "image/gif"; //声明输出流对象为gif图像
bmp.Save(Response.OutputStream, ImageFormat.Gif); //将bmp输出到页面
Response.End(); // 终止输出
}
}
以下是show.aspx页面的详细代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="show.aspx.cs" Inherits="Show" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Image ID="Image1" runat="server" /></div>
</form>
</body>
</html>
以下是show.aspx.cs页面的详细代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Show : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.Image1.ImageUrl = "Draw.aspx?";
}
}