前言: 本文章抄袭自本人刚刚买的《ASP.NET 3.5从入门到精通》这本书,此书介绍在 http://www.china-pub.com/44991
,本文章95%与此书的内容完全一样,另5%是我改正一些失误以后加上去的,该书原示例代码只能运行在IE核心的浏览器上,非IE核心浏览器上运行会出现些显示问题,本人更改了其中的一些代码。本文章经历昨晚本人五个小时的手打而成(且还未打完,下班回去继续打,想不到我的打字速度退化得这么快,郁闷!!!),俗话说:好记性不如烂笔头,把书的内容手打出来,对手,对脑,都有好处!!!


10.3.3
绘制简单图形
简单图形是组成复杂图形的基础,通过本小节的例子,读者可以掌握绘制复杂图形的基础。
除了直线外,矩形是所有简单图形的基础。因为在
Windows
操作系统中,大部分图形在内存中的表示都是矩形块,比如一个窗体、一个按钮控件等。即使是圆形的界面元素,在表示其位置时,仍然以所在矩形的左上角坐标为参照点,通过宽和高来框定其位置及其区域。
那么如何绘制矩形?
Graphics
中的
DrawRectangle
可以在规定一个左上角顶点和长宽边长的情况下绘制一个矩形。下面的代码实现生成一个
400*300
的图片,并画出一个矩形。
Pen pen = new Pen(Color.Red); // 创建一支红笔
Bitmap bmp = new Bitmap(400,300);
Graphics g = Graphics.FromImage(bmp);
// 以[50,50]为左上角,以长300,宽200绘制矩形
g.DrawRectangle(pen,new Rectangle(50,50,300,200));
pen.Dispose();
g.Dispose();
// 存为新图片
bmp.Save(Server.MapPath("~/aa.jpg"));
bmp.Dispose();
运行后,查看
aa.jpg
的效果如图。

如何绘制圆形呢?
Graphics
中的
DrawDllipse
可以在一个矩形范围内绘制椭圆,当把矩形设置为正方形时,就能画成为正圆,代码如下所示:
Pen pen = new Pen(Color.Red); // 创建一支红笔
Bitmap bmp = new Bitmap(400,400);
Graphics g = Graphics.FromImage(bmp);
// 以[50,50]为左上角,以长300,宽300的矩形内绘制圆
g.DrawEllipse(pen, new Rectangle(50,50,300,300));
pen.Dispose();
g.Dispose();
// 存为新图片
bmp.Save(Server.MapPath("~/bb.jpg"));
bmp.Dispose();
运行后,查看
bb.jpg
的效果如下图。

10.3.4
绘制文本
有时用户需要在图片上显示文字,
Graphics
中的
DrawString
可以在图形上绘制文字,其中可以指定坐标、字体、字号等信息。下面的代码简单地在图片上写了几个汉字。
Bitmap bmp = new Bitmap(200, 100);
Graphics g = Graphics.FromImage(bmp);
string str = "画在图片上的文字";
Font font = new Font("宋体", 10);
// 黑色笔刷
SolidBrush brush = new SolidBrush(Color.Black);
g.DrawString(str, font, brush, 50, 50); // 从[50,50]位置开始写字
font.Dispose();
brush.Dispose();
g.Dispose();
// 存为新图片
bmp.Save(Server.MapPath("~/text.jpg"));
bmp.Dispose();
运行后,
text.jpg
的效果如下图所示。

注意
:使用
GDI+
画上去的文字是二进制信息,无法作为文本复制粘贴
10.3.5
填充图形
前面的简单图形基本只有边界,内部区域是空心的。如果想绘制一个实心图形,可以使用
Graphics
中的
FillXXX
方法,并使用刷子(
Brush
对象)填充。
下面的代码示例实现用蓝色填充一个圆形区域。
Bitmap bmp = new Bitmap(300, 300);
Graphics g = Graphics.FromImage(bmp);
// 蓝色笔刷
SolidBrush brush = new SolidBrush(Color.Blue);
g.FillEllipse(brush, new Rectangle(5,5,250,250));
brush.Dispose();
g.Dispose();
// 存为新图片
bmp.Save(Server.MapPath("~/fill.jpg"));
bmp.Dispose();
运行后,查看
fill.jpg
的效果如图。

由此可见,利用
Fill
操作可以很方便地填充图形,如果需要使边界实出显示,可以再用
Draw
方法将边界绘制出来。
分享到:
相关推荐
第15章:介绍了如何使用ASP.NET中.NET应用程序框架的GDI+进行Web应用程序的图形图像编程。 第16章:随着互联网的不断发展,无刷新应用AJAX也越来越多的被人们所关注,本章详细的介绍了如何在ASP.NET 2.0和3.5中进行...
第十五章介绍了图形图像编程,包括如何在ASP.NET中处理图像,以及使用GDI+库进行绘制和操作图像的方法。 第十八章和第十九章分别阐述了WCF(Windows Communication Foundation)和WPF(Windows Presentation ...
C#与.NET3.5高级程序设计(第4版) 中文5 不在作者其他资源内显示,可以用高级搜索找到 《Pro C# 2010 and the .NET 4.0 Platform, Fifth Edition》已经出版http://www.apress.com/book/view/9781430225492 大家快去...
第1章 认识ASP.NET 3.5 1.1 什么是ASP.NET 1.1.1 .NET历史与展望 1.1.2 ASP.NET与ASP 1.1.3 ASP.NET开发工具 1.1.4 ASP.NET客户端 1.1.5 ASP.NET 3.5新增控件 1.1.6 ASP.NET 3.5 AJAX 1.2 .NET应用程序需框架 1.2.1 ...
第 1 章认识 ASP.NET 3.5 1.1 什么是ASP.NET 1.1.1 .NET 历史与展望 1.1.2 ASP.NET 与ASP 1.1.3 ASP.NET 开发工具 1.1.4 ASP.NET 客户端 1.1.5 ASP.NET 3.5 新增控件 1.1.6 ASP.NET 3.5 AJAX 1.2 .NET 应用程序需...
通过.NET Framework中的GDI+类库,开发者能够轻松地创建高质量的二维图形应用。GDI+支持常见的图形元素如直线、矩形、椭圆、文本等,并且可以通过路径(GraphicsPath)来组织这些图形元素,从而形成复杂的图形。 ##...
第1章 认识ASP.NET 3.5 1.1 什么是ASP.NET 1.1.1 .NET历史与展望 1.1.2 ASP.NET与ASP 1.1.3 ASP.NET开发工具 1.1.4 ASP.NET客户端 1.1.5 ASP.NET 3.5新增控件 1.1.6 ASP.NET 3.5 AJAX 1.2 .NET应用程序需框架 1.2.1 ...
第15章:介绍了如何使用ASP.NET中.NET应用程序框架的GDI+进行Web应用程序的图形图像编程。 第16章:随着互联网的不断发展,无刷新应用AJAX也越来越多的被人们所关注,本章详细的介绍了如何在ASP.NET 2.0和3.5中进行...
第15章:介绍了如何使用ASP.NET中.NET应用程序框架的GDI+进行Web应用程序的图形图像编程。 第16章:随着互联网的不断发展,无刷新应用AJAX也越来越多的被人们所关注,本章详细的介绍了如何在ASP.NET 2.0和3.5中进行...
第1章 认识ASP.NET 3.5 1.1 什么是ASP.NET 1.1.1 .NET历史与展望 1.1.2 ASP.NET与ASP 1.1.3 ASP.NET开发工具 1.1.4 ASP.NET客户端 1.1.5 ASP.NET 3.5新增控件 1.1.6 ASP.NET 3.5 AJAX 1.2 .NET应用程序需框架 1.2.1 ...
第15章:介绍了如何使用ASP.NET中.NET应用程序框架的GDI+进行Web应用程序的图形图像编程。 第16章:随着互联网的不断发展,无刷新应用AJAX也越来越多的被人们所关注,本章详细的介绍了如何在ASP.NET 2.0和3.5中进行...
标签“C# Windows .NET .NET3.5 GDI+ Dev”进一步明确了技术栈,这个教程可能使用C#编程语言,并基于.NET Framework 3.5,这是一个广泛使用的开发平台,支持多种Windows应用程序的构建。GDI+ Dev可能指的是专门针对...
首先,GDI+是.NET Framework提供的一种图形绘制API,它允许开发者进行复杂的2D图形渲染,包括文本、图像以及自定义形状。GDI+提供了丰富的绘图对象,如Graphics、Pen、Brush、Font等,使得创建半透明效果成为可能。 ...
总结来说,这个ASP.NET开发大全教程旨在提供一个全面的入门指南,帮助初学者理解和掌握ASP.NET的各个方面,包括MVC、WPF、WCF和GDI+等关键技术,并通过ASP.NET 3.5的实践应用,提升开发能力。对于希望深入学习.NET...
GDI+是微软为Windows操作系统提供的图形绘制接口,它允许开发者创建高质量的图形、文本和图像。 在描述中提到的“不含WPF的GDI + .NET报告组件”,表明StarReport设计时避开了WPF,这可能是因为WPF对系统资源的要求...