如何在ASP.NET实现数据图表
2006-01-10 23:00
621 查看
今天看了一篇文章,内容就是如何在ASP.NET实现数据图表,首先说明了如何创建一个简单的图;其次再说明了如何在创建的图上画线(line)和写字。要实现以上这些功能,我们必须引入以下几个命名空间:System.Drawing、System.Drawing.Drawing2D、System.Drawing.Imaging。
一、先说一下如何在一个页面上创建一个简单的图。
首先,我们需要实例化一个Bitmap对象
Bitmap image = new Bitmap(400,400); //两个参数分别是图片的width和height
之后,利用类Graphics的FromImage()方法,把之前实例化的Bitmap对象image作为参数传递给它,生成一个Graphics对象g;
Graphics g= Graphics.FromImage(image);
之后就可以调用g的FillEllipse、FillRectangle、FillPie等方法,为图片设置背景色、各个点的坐标位置等
g.FillEllipse(new SolidBrush(Color.Yellow),0,0,400,400);
g.FillPie(new SolidBrush(Color.Red),2,2,200,200,0,77);//画一个扇形,填充为红色。。。
最后,我们利用image对象的Save()方法将该图片输出到客户端浏览器显示
//以"Jpeg"格式保存此图片对象,在客户端显示出来
image.Save(Response.OutputStream,ImageFormat.Jpeg);
这样,一个单一的图片就生成了。
二、如何在图片上画其他图像(比如线、字、椭圆、矩形等等)
1、首先,自定义字体Font f = new Font( 参数列表),可以有很多种不同的重载方法,比如
Font f = new Font("宋体",20); //定义字体为宋体,字体大小为20
2、 之后,定义画笔 Pen penName = new Pen(参数列表),可以定义不同颜色、不同宽度的画笔。
Pen redPen = new Pen(Color.Red); //定义红色画笔
Pen bluePen = new Pen(new SolidBrush(Color.Blue),4); //定义蓝色画笔,画笔画出的线宽度为4
3、可以调用上面Graphics对象g的各种Draw*方法,如DrawLine(画线)、DrawString(写字)等方法,实现自己需要的功能;比如:
g.DrawLine(redPen,200,200,250,100); //用redPen画一条线,起始坐标分别为(200,200)和(250,100)
g.DrawRectangle(bluePen,40,40,250,200); //用bluePen画一个矩形,左上角坐标为(40,40),矩形的宽度和高度分别为250和200
g.DrawString("你好吗?", f, new SolidBrush(Color.Yellow), 50, 50); //写"你好吗?",字体为f,从(50,50)处开始写
4、最后,再利用image对象的Save()方法将该图片输出到客户端浏览器显示
//以"Jpeg"格式保存此图片对象,在客户端显示出来
image.Save(Response.OutputStream,ImageFormat.Jpeg);
[b] 三、以上代码画出的效果如下:
[/b]
这只是关于System.Drawing命名空间下部分类的简单应用。应用该类还可以做出各种各样的形象、直观的图形,比如饼图、各种对比分析图等等。所以有待于进一步的熟悉以及很好的实践,才可以更好的掌握好这个功能。.Net将各种类封装的很好,我们现在只是利用它们提供的接口来进行应用上的开发;有兴趣的,也可以对底层的一些实现进行研究,应该也是很有意思的吧,呵呵
自己本身不是高手,只是记录一些自己学习的东西;如果觉得简单,也希望大家一笑置之。
一、先说一下如何在一个页面上创建一个简单的图。
首先,我们需要实例化一个Bitmap对象
Bitmap image = new Bitmap(400,400); //两个参数分别是图片的width和height
之后,利用类Graphics的FromImage()方法,把之前实例化的Bitmap对象image作为参数传递给它,生成一个Graphics对象g;
Graphics g= Graphics.FromImage(image);
之后就可以调用g的FillEllipse、FillRectangle、FillPie等方法,为图片设置背景色、各个点的坐标位置等
g.FillEllipse(new SolidBrush(Color.Yellow),0,0,400,400);
g.FillPie(new SolidBrush(Color.Red),2,2,200,200,0,77);//画一个扇形,填充为红色。。。
最后,我们利用image对象的Save()方法将该图片输出到客户端浏览器显示
//以"Jpeg"格式保存此图片对象,在客户端显示出来
image.Save(Response.OutputStream,ImageFormat.Jpeg);
这样,一个单一的图片就生成了。
二、如何在图片上画其他图像(比如线、字、椭圆、矩形等等)
1、首先,自定义字体Font f = new Font( 参数列表),可以有很多种不同的重载方法,比如
Font f = new Font("宋体",20); //定义字体为宋体,字体大小为20
2、 之后,定义画笔 Pen penName = new Pen(参数列表),可以定义不同颜色、不同宽度的画笔。
Pen redPen = new Pen(Color.Red); //定义红色画笔
Pen bluePen = new Pen(new SolidBrush(Color.Blue),4); //定义蓝色画笔,画笔画出的线宽度为4
3、可以调用上面Graphics对象g的各种Draw*方法,如DrawLine(画线)、DrawString(写字)等方法,实现自己需要的功能;比如:
g.DrawLine(redPen,200,200,250,100); //用redPen画一条线,起始坐标分别为(200,200)和(250,100)
g.DrawRectangle(bluePen,40,40,250,200); //用bluePen画一个矩形,左上角坐标为(40,40),矩形的宽度和高度分别为250和200
g.DrawString("你好吗?", f, new SolidBrush(Color.Yellow), 50, 50); //写"你好吗?",字体为f,从(50,50)处开始写
4、最后,再利用image对象的Save()方法将该图片输出到客户端浏览器显示
//以"Jpeg"格式保存此图片对象,在客户端显示出来
image.Save(Response.OutputStream,ImageFormat.Jpeg);
[b] 三、以上代码画出的效果如下:
[/b]
这只是关于System.Drawing命名空间下部分类的简单应用。应用该类还可以做出各种各样的形象、直观的图形,比如饼图、各种对比分析图等等。所以有待于进一步的熟悉以及很好的实践,才可以更好的掌握好这个功能。.Net将各种类封装的很好,我们现在只是利用它们提供的接口来进行应用上的开发;有兴趣的,也可以对底层的一些实现进行研究,应该也是很有意思的吧,呵呵
自己本身不是高手,只是记录一些自己学习的东西;如果觉得简单,也希望大家一笑置之。
相关文章推荐
- ASP.NET MVC AJAX实现 以及如何处理json数据,简介
- asp.net下可实现超酷图表,超酷实时数据仪表显示
- ASP.NET实现数据图表
- asp.net如何实现excel导入到sql或者根据需要再将sql中的数据导出到excel表格中
- ASP.NET实现数据图表
- ASP.NET中如何实现同一时间只有一人能够修改系统数据
- [ASP.NET教程] C#中如何实现数据拖动?(拖动图片,到TextBox,并显示)
- ASP.NET实现数据图表
- 如何在ASP.NET MVC中实现提交若干个某模型的数据(某Model的List或ICollection,大小不定)
- ASP.NET实现数据图表a
- ASP.NET中如何实现同一时间只有一人能够修改系统数据
- ASP.NET实现数据图表
- asp.net实现数据图表
- ASP.NET实现数据图表1
- 在ASP.NET中如何在DataGrid中实现数据嵌套显示
- 讲解如何让 ASP.NET 实现获取xxxxxx rank值的代码数据
- 在asp.net中如何用LinkBtutton按钮实现安全退出,并保存当前页面数据与数据库中
- ASP.NET实现数据图表b
- ASP.NET实现数据图表c
- 在ASP.NET中如何实现和利用URL重写