第8章图形图像编程.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 图形图像编程 学习内容: 学习使用GDI+的图形图像编程方法,能编制出像Windows画图那样的程序。 本章的重点是学习创建画笔、画刷等绘图工具; 学习使用Graphics类的绘图函数绘制各种图形; 学习利用Bitmap类处理图形和图像; 最后简单介绍多媒体程序设计的基础知识。 8.1 GDI+(图形设备环境接口)概述 GDI+是2D(2维)图形库,它允许程序员用库中的函数编写与显视器、打印机和文件等图形设备进行交互的Windows和Web应用程序,可以在这些设备上输出字符和2D图形。 Windows和Web应用程序根据是在CRT显示还是在打印机打印,首先生成显示设备环境或打印设备环境,然后调用不同设备环境中的同名函数实现在显视器显示或在打印机上打印。这些工作都是由GDI+完成的。 GDI+是对Windows操作系统GDI函数库(GDI32.DLL)的扩充,并用C++类进行了封装,GDI+提供了比GDI更强大的功能。WindowsXP及以后版本支持GDI+,以前版本Windows操作系统要使用GDI+,必须复制Gdiplus.dll到系统目录。GDI+支持受控代码和非受控代码。 GDI+绘图类 GDI+基本绘图类有: Graphics、Pen、Brush、Bitmap、Image 一. Graphics类 Graphics类提供一些方法绘制各种图形。 Graphics类是密封类,不能有派生类。 1. 使用Graphics类绘图的基本步骤 Graphics类中提供绘图函数使用GDI+类中提供的绘图工具来输出字符或绘制图形。 GDI+默认绘图坐标以窗体用户区左上角为原点,x轴向右为正方向,y轴向下为正方向,单位为像素。 GDI+定义了三种坐标系统,并提供了三种坐标转换的方法Graphics.TransformPoints()。 (1)创建Graphics对象 创建Graphics对象可以使用以下三种方法: ①调用某控件或窗体的CreateGraphics方法来创建 例:Graphics g=this.CreateGraphics(); ②接收对图形对象的引用(通常在控件或窗体的Paint事件中进行) ③从继承自图像的任何对象创建 例: Bitmap b=new Bitmap(@c:\PIC.JPG); Graphics g1=Graphics.FromImage(b); (2)设置画笔和画刷 (3)使用已创建的Graphics对象绘图 下面的例子,在窗体中增加了一个按钮,单击按钮将在窗体中画一个边界为红色,内部填充为蓝色的圆。该程序段说明了使用Graphics类绘图的基本步骤。按钮的单击事件处理函数如下: 绘制矩形定义的园或椭圆,矩形左上角坐标为(10,10),宽和高各为100个像素单位。 private void button1_Click(object sender, EventArgs e) { //得到窗体使用的Graphics类对象方法1 Graphics g=this.CreateGraphics(); //创建红色的笔对象 Pen pen1=new Pen(Color.Red); //创建蓝色的刷子对象 SolidBrush brush1=new SolidBrush(Color.Blue); //用红色笔在窗体中画矩形内切圆的边界 g.DrawEllipse(pen1,10,10,100,100); //用蓝色刷子填充矩形内切圆的内部 g.FillEllipse(brush1,10,10,100,100); } 2. 窗体的Paint事件 运行上例,单击按钮,出现边界为红色,内部填充为蓝色的圆。最小化后再最大化,图形消失。这是因为当发生窗体最小化后再最大化、菜单被打开再关闭或打开对话框再关闭等情况,用户区内容可能被破坏。操作系统不保存被破坏的用户区内容,而是由应用程序自己恢复被破坏的用户区内容。 当应用程序窗口用户区内容被破坏后需恢复时,Windows操作系统向应用程序发送Paint事件,应用程序应把在窗口用户区输出数据的语句放在Paint事件处理函数中,应用程序响应Paint事件,能在事件处理函数中调用这些在窗口用户区输出数据的语句恢复被破坏的内容。 Form类窗体不能自动响应Paint事件,程序员必须生成Paint事件处理函数。修改上例,在Form1类中增加Paint事件处理函数如下: private void Form1_Paint(object sender, PaintEventArgs e) { //使用的Graphics类对象方法2 Graphics g=e.Gr

文档评论(0)

ffpg + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档