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

.NET3.5 GDI+ 图形操作4

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

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


10.3 基本绘图

 

.NET 中图形包括以下两个步骤。

 

 

第一,创建 Graphics 对象。

 

 

第二,使用 Graphics 对象绘制线条和形状,呈现文本或显示操作图像。

 

 

由此可见,如何创建 Graphics 对象是首先要解决的问题。本节将讲述如何绘制直线、矩形、圆等基本图形,然后基本图形构成复杂的图形。 Graphics 常用的绘图方法如下表。

 

 

 

 
 

 

10.3.1 创建图形对象

 

 

创建图形对象可有如下几种方法。

 

 

²  在窗体或控件的 Paint 事件中接收对图形对象的引用,作为 PaintEventArgs 的一部分。在为控件创建绘制代码时,通常使用此方法来获取对图形对象的引用。

 

 

²  调用某控件或窗体的 CreateGraphics 方法,以获取对 Graphics 对象的引用,该对象表示该控件或窗体的绘图图面。如果想在已存在的窗体或控件上绘图,可使用此方法。

 

 

²  由从 Image 继承的任何对象创建 Graphics 对象。此方法一般用来生成图片。

 

 

ASP.NET Web 应用程序而言,前两种是无法做到的,因此只能采用第三种方法。

 

 

假设要从网站根目录 mm.jpg 图形创建图形对象,可以使用如下代码:

 

 

Bitmap bmp  =   new  Bitmap(Server.MapPath( " ~/mm.jpg " ));
Graphics g  =  Graphics.FromImage(bmp);
bmp.Dispose();
g.Dispose();
 

 


 

 


 

 

注意 :这里要求图片必须存在,相当于对图片的修改操作,否则将不能创建 Bitmap 对象,也就无法创建图形对象了。另外, Bitmap 对象和图形对象都是非常耗费计算机内存的,所以要及时调用 Dispose 方法释放占用资源。

 

 


 

 

当然,也可以在内存中新建 Bitmap 对象,对其绘制完毕后再保存到硬盘上或直接输入到 HTTP 流中发回客户端显示。比如在内存中创建一个 200*100 的图像,代码如下:

 

Bitmap bmp  =   new  Bitmap( 200 , 100 );
Graphics g  =  Graphics.FromImage(bmp);
bmp.Dispose();
g.Dispose();
 


如果要新创建一个图像,则用这种方法是最好的。

 

 

 

 

 

 

 

 

10.3.2 绘制直线

 

 

绘制直线一般使用 Graphics 对象的 DrawLine 方法。下面的代码在 mm.jpg 图片上用红色线条斜画一条直线。

 

 

 

Pen pen = new Pen(Color.Red); // 创建一支红笔
Bitmap bmp = new Bitmap(Server.MapPath("~/mm.jpg"));
Graphics g = Graphics.FromImage(bmp);
g.DrawLine(pen, 0, 0, 200, 200); // 从[0,0]到[200,200]画直线
pen.Dispose();
g.Dispose();
// 存为新图片
bmp.Save(Server.MapPath("~/mm2.jpg"));
bmp.Dispose();
 

 

 

代码说明:

 

 


bmp.Save: Image 对象保存到磁盘。 Graphics 对象并非直接在原图上画直线,而是在内存中操作 Image 对象,所以需要另存为 mm2.jpg 才能看出效果。

 

 

程序运行后,查看 mm2.jpg 文件就可以看到效果了,如下图:

 

 

 

分享到:
评论

相关推荐

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

    27.8 通过GDI+呈现图形数据 778 27.9 创建一个完整的Windows Forms应用程序 782 27.10 小结 788 虽然法律没有具体规定不可上传出版物电子版,如侵犯您的利益,请与本人或管理员联系删除资源;纸质版读起来更...

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

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

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

    ASP.NET 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 ...

    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 开发大全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.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中进行...

    C#入门经典第四版(第13部分,共分16个部分)

    通过C#可以很容易地学习.NET Framework 3.5的强大功能,所以C#是开始您编程生涯的绝佳方式。本书全面阐述了C#编程的所有方面,包括C#语言本身、Windows编程、Web编程及数据源的使用等内容。 学习了新的编程技巧后,...

    C#入门经典第四版(第11部分,共分16个部分)

    通过C#可以很容易地学习.NET Framework 3.5的强大功能,所以C#是开始您编程生涯的绝佳方式。本书全面阐述了C#编程的所有方面,包括C#语言本身、Windows编程、Web编程及数据源的使用等内容。 学习了新的编程技巧后,...

    C#入门经典第四版(第6部分,共分16个部分)

    通过C#可以很容易地学习.NET Framework 3.5的强大功能,所以C#是开始您编程生涯的绝佳方式。本书全面阐述了C#编程的所有方面,包括C#语言本身、Windows编程、Web编程及数据源的使用等内容。 学习了新的编程技巧后,...

    C#入门经典第四版(第7部分,共分16个部分)

    通过C#可以很容易地学习.NET Framework 3.5的强大功能,所以C#是开始您编程生涯的绝佳方式。本书全面阐述了C#编程的所有方面,包括C#语言本身、Windows编程、Web编程及数据源的使用等内容。 学习了新的编程技巧后,...

    C#入门经典第四版(第8部分,共分16个部分)

    通过C#可以很容易地学习.NET Framework 3.5的强大功能,所以C#是开始您编程生涯的绝佳方式。本书全面阐述了C#编程的所有方面,包括C#语言本身、Windows编程、Web编程及数据源的使用等内容。 学习了新的编程技巧后,...

    C#入门经典第四版(第10部分,共分16个部分)

    通过C#可以很容易地学习.NET Framework 3.5的强大功能,所以C#是开始您编程生涯的绝佳方式。本书全面阐述了C#编程的所有方面,包括C#语言本身、Windows编程、Web编程及数据源的使用等内容。 学习了新的编程技巧后,...

    c# 入门经典(第四版) part4

    C#入门经典(第4版)》通过C#可以很容易地学习.NET Framework 3.5的强大功能,所以C#是开始您编程生涯的绝佳方式。《C#入门经典(第4版)》全面阐述了C#编程的所有方面,包括C#语言本身、Windows编程、Web编程及数据源的...

    C#入门经典(第4版) part5

    《C#入门经典(第4版)》通过C#可以很容易地学习.NET Framework 3.5的强大功能,所以C#是开始您编程生涯的绝佳方式。《C#入门经典(第4版)》全面阐述了C#编程的所有方面,包括C#语言本身、Windows编程、Web编程及数据源...

    C#入门经典(第4版) part1

    《C#入门经典(第4版)》通过C#可以很容易地学习.NET Framework 3.5的强大功能,所以C#是开始您编程生涯的绝佳方式。《C#入门经典(第4版)》全面阐述了C#编程的所有方面,包括C#语言本身、Windows编程、Web编程及数据源...

Global site tag (gtag.js) - Google Analytics