`
niunan
  • 浏览: 725912 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

.NET3.5 GDI+ 图形操作5

    博客分类:
  • .NET
阅读更多

      前言: 本文章抄袭自本人刚刚买的《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 方法将边界绘制出来。

 

 

 

分享到:
评论

相关推荐

    ASP.NET 3.5开发大全 (中文 PDF 完整书签 非扫描)

    第15章:介绍了如何使用ASP.NET中.NET应用程序框架的GDI+进行Web应用程序的图形图像编程。 第16章:随着互联网的不断发展,无刷新应用AJAX也越来越多的被人们所关注,本章详细的介绍了如何在ASP.NET 2.0和3.5中进行...

    ASP.NET 3.5 开发大全

    第十五章介绍了图形图像编程,包括如何在ASP.NET中处理图像,以及使用GDI+库进行绘制和操作图像的方法。 第十八章和第十九章分别阐述了WCF(Windows Communication Foundation)和WPF(Windows Presentation ...

    C#与.NET3.5高级程序设计(第4版) 中文4

    C#与.NET3.5高级程序设计(第4版) 中文5 不在作者其他资源内显示,可以用高级搜索找到 《Pro C# 2010 and the .NET 4.0 Platform, Fifth Edition》已经出版http://www.apress.com/book/view/9781430225492 大家快去...

    ASP.NET 3.5 开发大全1-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 ...

    ASP.NET3.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 应用程序需...

    基于GDI+的通用图形平台设计

    通过.NET Framework中的GDI+类库,开发者能够轻松地创建高质量的二维图形应用。GDI+支持常见的图形元素如直线、矩形、椭圆、文本等,并且可以通过路径(GraphicsPath)来组织这些图形元素,从而形成复杂的图形。 ##...

    ASP.NET 3.5 开发大全11-15

    第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 ...

    ASP.NET 3.5 开发大全 压缩包2

    第15章:介绍了如何使用ASP.NET中.NET应用程序框架的GDI+进行Web应用程序的图形图像编程。 第16章:随着互联网的不断发展,无刷新应用AJAX也越来越多的被人们所关注,本章详细的介绍了如何在ASP.NET 2.0和3.5中进行...

    ASP.NET 3.5 开发大全 压缩包1

    第15章:介绍了如何使用ASP.NET中.NET应用程序框架的GDI+进行Web应用程序的图形图像编程。 第16章:随着互联网的不断发展,无刷新应用AJAX也越来越多的被人们所关注,本章详细的介绍了如何在ASP.NET 2.0和3.5中进行...

    ASP.NET 3.5 开发大全word课件

    第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 ...

    ASP.NET 3.5 开发大全 (上)

    第15章:介绍了如何使用ASP.NET中.NET应用程序框架的GDI+进行Web应用程序的图形图像编程。 第16章:随着互联网的不断发展,无刷新应用AJAX也越来越多的被人们所关注,本章详细的介绍了如何在ASP.NET 2.0和3.5中进行...

    目标闪烁板(GDI +变得简单)

    标签“C# Windows .NET .NET3.5 GDI+ Dev”进一步明确了技术栈,这个教程可能使用C#编程语言,并基于.NET Framework 3.5,这是一个广泛使用的开发平台,支持多种Windows应用程序的构建。GDI+ Dev可能指的是专门针对...

    Windows窗体控件:使用GDI +的VB.NET半透明控件

    首先,GDI+是.NET Framework提供的一种图形绘制API,它允许开发者进行复杂的2D图形渲染,包括文本、图像以及自定义形状。GDI+提供了丰富的绘图对象,如Graphics、Pen、Brush、Font等,使得创建半透明效果成为可能。 ...

    ASP.NET 开发大全 WORD文档

    总结来说,这个ASP.NET开发大全教程旨在提供一个全面的入门指南,帮助初学者理解和掌握ASP.NET的各个方面,包括MVC、WPF、WCF和GDI+等关键技术,并通过ASP.NET 3.5的实践应用,提升开发能力。对于希望深入学习.NET...

    WPF-Less GDI + .NET报告组件:星级报告

    GDI+是微软为Windows操作系统提供的图形绘制接口,它允许开发者创建高质量的图形、文本和图像。 在描述中提到的“不含WPF的GDI + .NET报告组件”,表明StarReport设计时避开了WPF,这可能是因为WPF对系统资源的要求...

Global site tag (gtag.js) - Google Analytics