当前位置首页 > 计算机 > 图形图像
搜柄,搜必应! 快速导航 | 使用教程

-图形图像程序设计课件

文档格式:PPT| 42 页|大小 664.50KB|2024-11-11 发布|举报 | 版权申诉
第1页
第2页
第3页
下载文档到电脑,查找使用更方便 还剩页未读,继续阅读>>
1 / 42
此文档下载收益归作者所有 下载文档
  • 版权提示
  • 文本预览
  • 常见问题
  • 单击此处编辑母版标题样式,编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,大家好,1,2,第,18,章 图形图像程序设计,本章将主要介绍,C#,中图形、图像绘制及处理的基本知识和技巧,使读者对,C#,中图形绘制及图像处理过程有一个大致的了解3,章节内容,18.1 GDI+,基础,18.2,基本图形的绘制,18.3,图像处理,18.4,小结,4,18.1.1 GDI+,概述,GDI+,(,Graphics Device Interface Plus,,图形设备接口)是一组通过,C+,类实现的应用程序编程接口,为开发人员提供了一组与各种设备进行交互的,C+,类应用程序,GDI+,打印机,显示器,文件,5,18.1.1 GDI+,概述,GDI+,是微软推出的新一代二维图形系统,是,Windows XP,和,Windows Server 2003,操作系统自带的图形接口GDI,是,Windows,操作系统早期版本的图形接口与,GDI,相比,,GDI+,的性能更优化,并添加了许多新的功能目前,GDI+,已完全替代,GDI,,是在,Windows,窗口应用程序中以编程方式呈现图形的唯一一方法。

    6,18.1.1 GDI+,概述,GDI+,按功能划分,可分为,3,类:,(,1,)二维矢量图形绘制:使用,GDI+,绘制矢量线条和形状GDI+,提供了用于存储矢量图形信息的类,如,Pen,类,以及存储矢量图形绘制信息的类和实际绘制图形的类,如,Graphics,类2,)图像处理:,GDI+,提供了,Bitmap,、,Image,等类用于显示、操作和保存,BMP,、,JPG,、,GIF,等格式的图像3,)文字显示:使用,GDI+,显示各种字体、字号和样式的文本7,常用结构体和类,Point,类:,二维表面上的一个点,,Point p=new Point(1,1),Size,类:,表示一个尺寸,包含宽度和高度,,Size s=new Size(5,4),,公共属性,Height,和,Width,可以获得和设置,Size,的高度和宽度Rectangle,类:两种构造函数,参数如下,X,坐标,,y,坐标,宽度,高度,Point,结构和,Size,结构,8,GraphicsPath,类:,表示一系列连接的线条和曲线,在构造路径时,首先使用,AddLine,或,AddRectangle,等方法添加线条、曲线、矩形等,然后使用,Graphics,对象的,DrawPath,方法绘制路径或调用,FillPath,方法填充路径。

    例,18-1,),Color,类:,使用系统预定义颜色,,Color myColor=Color.Red;,使用,FromArgb,方法指定任意颜色,两种方法,Color myColor=Color.FromArgb(255,0,0);,Color myColor=Color.FromArgb(255,0,0,1);,9,18.1.2 Graphics,类,Graphics,类是所有绘图的基础,绘图之前都需要先创建,Graphics,对象,相当于在窗体中创建了一块画布,然后使用,GDI+,绘制线条和形状、呈现文本或显示与操作图像1,创建,Graphics,对象,,3,种方法:,(,1,)利用窗体或控件的,Paint,事件中的,PaintEventArgs,方法:为窗体或控件编写,Paint,事件时,,Graphics,对象可以通过,Paint,事件中的,PaintEventArgs,方法来获取private void Form1_Paint(object,sender,System.Windows.Forms.PaintEventArgs e),Graphics,g=e.Graphics;,10,18.1.2 Graphics,类,(,2,)利用窗体或某个控件的,CreateGraphics,方法:当要在某窗体或控件上显示图形时,可利用某窗体或控件的,CreateGraphics,方法,获取对,Graphics,对象的引用。

    Graphics,g=this.CreateGraphics();,Graphics,g1=button1.CreateGraphics();,/,其中,,this,代表某窗体,,button1,代表,Button,按钮控件3,)由,Image,类派生的任意对象创建图形对象:当需要更改某个已经存在的图像时,可利用,Image,类派生的任意对象创建图形对象Graphics,对象Bitmap,mybitmap=new Bitmap(1.jpg);,Graphics g=Graphics.FromImage(mybitmap);,注意,,Graphics,对象使用完后,应当及时释放掉,否则会占用内存资源g.Dispose(),11,18.1.2 Graphics,类,2,Graphics,对象的方法,方法,说明,Clear,清除整个绘图面并以指定背景色填充,DrawArc,绘制一段弧线,它表示由一对坐标、宽度和高度指定的椭圆部分,DrawEllipse,绘制一个由边框定义的椭圆,DrawIcon,在指定坐标处绘制由指定的,Icon,对象表示的图像,DrawIconUnstretched,绘制指定的,Icon,对象表示的图像,而不缩放该图像,DrawImage,在指定位置并且按原始大小绘制指定的,Image,对象,DrawImageUnscaled,在坐标对所指定的位置并且按其原始大小绘制指定的,Image,对象,DrawLine,绘制一条连接由坐标对指定的两个点的线段,12,DrawLines,绘制一系列连接一组,Point,结构的线段,DrawPie,绘制一个扇形,DrawPolygon,绘制由一组,Point,结构定义的多边形,DrawRectangle,绘制由坐标对、宽度和高度指定的矩形,DrawRectangles,绘制一系列由,Rectangle,结构指定的矩形,DrawString,在指定位置绘制指定的文本字符串,FillEllipse,填充边框所定义的椭圆的内部,FillPie,填充指定的椭圆所定义的扇形区的内部,FillPolygon,填充,Point,结构指定的点数组所定义的多边形的内部,FillRectangle,填充由一对坐标、一个宽度和一个高度指定的矩形的内部,FillPath,填充,GraphicsPath,的内部,18.1.2 Graphics,类,13,下列代码演示,Graphics,对象的应用,private void Form1_Paint(object sender,PaintEventArgs e),Graphics g=e.Graphics;,g.Clear(Color.FromArgb(244,23,34);,g.Dispose();,private void button1_Click(object sender,EventArgs e),Graphics a=button1.CreateGraphics();,a.Clear(Color.Red);,g.Dispose();,例:,18-1-2,18.1.2 Graphics,类,14,18.1.3,画笔对象的使用,Graphics,类对象相当于画布,而画笔就相当于绘图的笔,常用,Pen,类来创建画笔对象绘制线、图形边缘,,Brush,类来填充图形或一个封闭区域。

    Pen,类的常用属性为宽度、颜色和样式宽度属性用于确定线条的宽度,以像素为单位;颜色属性用于确定线条的颜色;样式属性用于确定所绘制线条的线型,通常有实线(,Solid,)、虚线(,Dash,)、点线(,Dot,)、点划线(,DashDot,)、双点划线(,DashDotDot,)等另外,在,C#,中还可以通过属性设置画笔起点和终点的样式,通常在起点或终点加上箭头15,18.1.3,画笔对象的使用,1,创建画笔对象,常用的,Pen,类构造函数为:,public Pen(Color color),public Pen(Color color,,,float width),例如:,Pen p=new Pen(Color.Red);,注意,,Pen,对象使用完毕后,应当被及时释放掉,否则会占据内存资源16,18.1.3,画笔对象的使用,2,画笔对象的属性,可通过设置画笔的属性值来使用画笔名称,说明,Color,设置画笔对象的颜色,Width,设置画笔的宽度,EndCap,获取画笔绘制的直线终点的样式,StartCap,设置画笔绘制的直线起点的样式,DashStyle,设置画笔绘制的虚线的线型,17,18.1.3,画笔对象的使用,下列代码演示,Pen,对象的应用。

    Graphics a=this.CreateGraphics();,a.Clear(Color.Red);,Pen p=new Pen(Color.Blue,5);,p.DashStyle=DashStyle.DashDot;,p.EndCap=LineCap.ArrowAnchor;,a.DrawLine(p,10,30,200,30);,p.Dispose();,a.Dispose();,例:,18-1-3,18,18.1.4,画刷对象的使用,画刷的功能与刷子类似,用于填充图形的内部C#,中代表画刷的类是,Brush,类,该类为抽象类,它不能被实例化若要创建一个画刷对象,必须使用从,Brush,派生出的类来创建画刷对象常用画刷派生类如下,:,SolidBrush,类:单色画刷HatchBrush,类:阴影画刷TextureBrush,类:纹理(图像)画刷GradientBrush,类:渐变画刷注意,,Brush,对象使用完后,应当及时释放掉,否则会占用内存资源19,单色画刷,功能:向某一特定区域内填充指定的颜色,构造函数,Public SolidBrush(Color.Color);,例如:,18-1-4,20,阴影画刷,有两种颜色(前景色和背景色),以及多种样式,可通过属性进行设置。

    Public HatchBrush(HatchStyle,Color foreColor),Public HatchBrush(HatchStyle,Color foreColor,Color backColor),foreColor,定义线条的颜色,,backColor,定义区域背景的颜色例:,18-1-5,21,纹理画刷,使用某种纹理,如图像,对图形的纹理进行修饰Public TextureBrush(Image bitmap);,例:,18-1-6,22,渐变画刷,用于在某个特定区域内生成渐变效果LinearGradientBrush,可以显示线性渐变效果,PathGradientBrush,为路径渐变,可以显示具有弹性的渐变效果例:,18-2,23,18.1.5 Bitmap,类,1,创建,Bitmap,对象,Bitmap,类的构造函数有多种重载形式,分别如下1,)从指定的现有图像建立,Bitmap,对象Bitmap bitmap1=new Bitmap(pictureBox1.Image);,(,2,)从指定的图像文件建立,Bitmap,对象Bitmap bitmap2=new Bitmap(“D:picturepicture.bmp”);,(,3,)从现有的,Bitmap,对象建立新的,Bitmap,对象,例如下列代码。

    Bitmap bitmap3=new Bitmap(bitmap1);,另外,,Bitmap,类相当于一个图形容器,里面装载的对象即为图像,因,此在编程时可以把,Bitmap,类的对象看作是一个图像,.,pictureBox1.Image=。

    点击阅读更多内容
    卖家[上传人]:986
    资质:实名认证
    相关文档
    正为您匹配相似的精品文档