c第09章二维图形图像处理.pptx

上传人:赵** 文档编号:72527872 上传时间:2023-02-12 格式:PPTX 页数:31 大小:278.10KB
返回 下载 相关 举报
c第09章二维图形图像处理.pptx_第1页
第1页 / 共31页
c第09章二维图形图像处理.pptx_第2页
第2页 / 共31页
点击查看更多>>
资源描述

《c第09章二维图形图像处理.pptx》由会员分享,可在线阅读,更多相关《c第09章二维图形图像处理.pptx(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1第第1部分部分第第9章章 二维图形图像处理二维图形图像处理9.1 GDI+概述概述 9.2 绘制基本图形绘制基本图形 9.3 图像处理图像处理c第09章二维图形图像处理共31页,您现在浏览的是第1页!29.1 GDI+概述概述 GDI+:Graphics Device Interface(图形设备接口图形设备接口),它提,它提 供了高级图形图像处理功能供了高级图形图像处理功能在在C#中,通过一套部署为托管代码的类来展现提供的图中,通过一套部署为托管代码的类来展现提供的图 形图像处理功能,这套类被称为形图像处理功能,这套类被称为GDI+的托管类。利用的托管类。利用 GDI+的托管类可以轻松实现

2、颜色渐变、透明处理、纹理的托管类可以轻松实现颜色渐变、透明处理、纹理处理、拉伸和缩放等多种高级功能。处理、拉伸和缩放等多种高级功能。GDI+主要提供了三类服务:主要提供了三类服务:1.二维矢量图形处理二维矢量图形处理 2.二维图像处理二维图像处理 3.文字显示文字显示c第09章二维图形图像处理共31页,您现在浏览的是第2页!3在在C#C#中,所有图形图像处理功能都包含在以下名称空间下:中,所有图形图像处理功能都包含在以下名称空间下:1.1.System.Drawing名称空间名称空间提供了提供了对对GDI+基本基本图图形功能的形功能的访问访问,主要有,主要有Graphics类类Bitmap类类

3、、从、从Brush类继类继承的承的类类、Font类类、Icon类类、Image类类、Pen类类、Color类类等等。2.2.System.Drawing.Drawing2D名称空间名称空间提供了高级的二维和矢量图形处理功能。主要有:梯度型画提供了高级的二维和矢量图形处理功能。主要有:梯度型画刷、刷、Matrix类(用于定义几何变换)和类(用于定义几何变换)和GraphicsPath类类等。等。3.System.Drawing.Imaging名称空间名称空间 提供了高级提供了高级 图像处理功能。图像处理功能。4.4.System.Drawing.Text名称空间名称空间 提供了高级提供了高级 字

4、体和文本排版功能字体和文本排版功能 9.1 GDI+概述(续)概述(续)c第09章二维图形图像处理共31页,您现在浏览的是第3页!49.1.2 Graphics类类 绘制图形图像前,首先必须创建绘制图形图像前,首先必须创建Graphics对象,然后利用对象,然后利用这个对象绘制直线、曲线、椭圆等图形图像。这个对象绘制直线、曲线、椭圆等图形图像。有三种常见的创建有三种常见的创建Graphics对象的方法。对象的方法。1.在窗体或控件的在窗体或控件的Paint事件中获取事件中获取Graphics对象。例如:对象。例如:private void Form1_Paint()Graphics g=e.G

5、raphics;c第09章二维图形图像处理共31页,您现在浏览的是第4页!59.1.3 颜色颜色 颜色封装在颜色封装在System.Drawing.Color结构中。人眼可以分辨的结构中。人眼可以分辨的任何颜色都是由一定的红、绿、蓝三色光组成。任何一种颜任何颜色都是由一定的红、绿、蓝三色光组成。任何一种颜色都可以有四个分量:色都可以有四个分量:R:红色,取值范围:红色,取值范围0255,0表示没有红色成分,表示没有红色成分,255为饱和为饱和红色;红色;G:绿色,取值范围:绿色,取值范围0255,0表示没有绿色成分,表示没有绿色成分,255为饱和为饱和绿色;绿色;B:蓝色,取值范围:蓝色,取值

6、范围0255,0表示没有蓝色成分,表示没有蓝色成分,255为饱和为饱和蓝色;蓝色;A:Alpha值,即透明度,取值范围值,即透明度,取值范围0255,0表示完全透明,表示完全透明,255表示完全不透明。表示完全不透明。c第09章二维图形图像处理共31页,您现在浏览的是第5页!62.2.系统预定义颜色系统预定义颜色 System.Drawing.Color结结构构中中提提供供了了许许多多静静态态性性,每每个个属属性性返返回回一一个个命命名名颜颜色色,在在Color结结构构中中已已经经预预定定义义了了141种颜色,可以直接使用。例如:种颜色,可以直接使用。例如:this.BackColor=Col

7、or.White;9.1.3 颜色(续)颜色(续)c第09章二维图形图像处理共31页,您现在浏览的是第6页!79.1.4 画笔和画刷(续)画笔和画刷(续)画刷(画刷(BrushBrush)画刷是可以与画刷是可以与Graphics对象一起使用来创建实心形状和呈现文本的对象一起使用来创建实心形状和呈现文本的对象。可以用来填充各种图形形状,如矩形、椭圆、饼型图和多边对象。可以用来填充各种图形形状,如矩形、椭圆、饼型图和多边形等。下表列出了几种不同类型的画刷。形等。下表列出了几种不同类型的画刷。类类说明说明SolidBrush用纯色填充图形用纯色填充图形TextureBrush用基于光栅的图像用基于光

8、栅的图像(位图、位图、JPG等等)填充图形填充图形LinearBradientBrush用颜色渐变填充图形用颜色渐变填充图形PathGradientBrush用渐变效果填充图形用渐变效果填充图形HatchBrush用各种图案填充图形用各种图案填充图形c第09章二维图形图像处理共31页,您现在浏览的是第7页!82)2)使用使用HatchBrush类填充简单图案类填充简单图案 HatchBrush类提供的画刷可以用各种图案填充图形。通过类提供的画刷可以用各种图案填充图形。通过Hatch类型可以设置影线样式。在创建影线的画刷时,能设定前类型可以设置影线样式。在创建影线的画刷时,能设定前景色、背景色和

9、影线样式。有景色、背景色和影线样式。有56种不同的影线样式枚举,该枚举种不同的影线样式枚举,该枚举可以参看可以参看System.Drawing.Drawing2D.HatchStyle枚举。枚举。【例【例9-4】填充简单图案示例。】填充简单图案示例。9.1.4 画笔和画刷(续)画笔和画刷(续)运行结果如右图所示:运行结果如右图所示:c第09章二维图形图像处理共31页,您现在浏览的是第8页!94)4)使用使用LinearGradientBrush类定义线性渐变类定义线性渐变 LinearGradientBrush对象用颜色线性渐变填充图形。提供对象用颜色线性渐变填充图形。提供了以下三种构造函数:

10、了以下三种构造函数:(1)提供两个点和两种颜色。提供两个点和两种颜色。Public LinearGradientBrush(Point point1,Point point2,Color color1,Color color2)(2)提供一个矩形和一个角度。提供一个矩形和一个角度。Public LinearGradientBrush(Rectangle rect,Color color1,Color color2,float angle)(3)指定渐变的模式。指定渐变的模式。Public LinearGradientBrush(Rectangle rect,Color color1,Color

11、 color2,LinearGradientMode linearGradientMode)9.1.4 画笔和画刷(续)画笔和画刷(续)c第09章二维图形图像处理共31页,您现在浏览的是第9页!105)5)使用使用PathGradientBrushPathGradientBrush类实现彩色渐变类实现彩色渐变 在在GDI+中,把一个或多个图形组成的形体称为路径。可中,把一个或多个图形组成的形体称为路径。可以使用以使用GraphicsPath类定义路径,使用类定义路径,使用PathGradientBrush类类定义路径内部的渐变色画刷。渐变色从路径的内部中心点逐渐定义路径内部的渐变色画刷。渐变色

12、从路径的内部中心点逐渐过渡到路径的外边界边缘。过渡到路径的外边界边缘。PathGradientBrush类提供了三种重载的构造函数,其中类提供了三种重载的构造函数,其中常用的是通过指定路径实现彩色渐变。常用形式如下:常用的是通过指定路径实现彩色渐变。常用形式如下:Public PathGradientBrush(GraphicsPath path)【例【例9-8】路径和路径画刷的使用示例。】路径和路径画刷的使用示例。运行效果:运行效果:9.1.4 画笔和画刷(续)画笔和画刷(续)c第09章二维图形图像处理共31页,您现在浏览的是第10页!119.2.1 直线(续)直线(续)DrawLines方

13、法:绘制一系列点组成的线。常用形式:方法:绘制一系列点组成的线。常用形式:public void DrawLines(Pen pen,Point points)其中,其中,Pen对象确定线条的颜色、宽度和样式;数组中对象确定线条的颜色、宽度和样式;数组中的个点指定起始点,后面的每个点都以相临的前一个点的个点指定起始点,后面的每个点都以相临的前一个点为起始点组成线段。为起始点组成线段。【例【例9-9】使用】使用DrawLine方法和方法和DrawLines方法绘制直线。方法绘制直线。c第09章二维图形图像处理共31页,您现在浏览的是第11页!129.2.3 多边形多边形DrawPolygon方法

14、:绘制多边形的轮廓方法:绘制多边形的轮廓FillPolygon方法:填充多边形的封闭区域。方法:填充多边形的封闭区域。【例【例9-11】绘制多边形示例。】绘制多边形示例。c第09章二维图形图像处理共31页,您现在浏览的是第12页!139.2.4 曲线(续)曲线(续)2.DrawClosedCurve方法方法 通过连接数组中节点画一个平滑的曲线,此方法会自动把通过连接数组中节点画一个平滑的曲线,此方法会自动把首尾节点连接起来构成封闭曲线。注意数组中的节点至少首尾节点连接起来构成封闭曲线。注意数组中的节点至少要有要有3个点组成,默认弯曲强度为个点组成,默认弯曲强度为0.5。1)public voi

15、d DrawClosedCurve(Pen pen,Point points)其中,其中,Point结构类型的数组中指明各节点。结构类型的数组中指明各节点。2)public void DrawClosedCurve(Pen pen,Point points,float tension FillMode fillmode)其中,其中,fillmode指明曲线封闭区域内以何种方式填充。指明曲线封闭区域内以何种方式填充。c第09章二维图形图像处理共31页,您现在浏览的是第13页!149.2.4 曲线(续)曲线(续)1)DrawBezier方法:绘制一段贝塞尔曲线的,常用形式:方法:绘制一段贝塞尔曲线

16、的,常用形式:public void DrawBezier(Pen pen,Point pt1,Point pt2,Point pt3,Point pt4)其中其中pt1、pt2、pt3和和pt4分别指定四个点。分别指定四个点。2)DrawBeziers方法:绘制多段贝塞尔曲线,常用形式:方法:绘制多段贝塞尔曲线,常用形式:public void DrawBezier(Pen pen,Point points)其中其中points是是Point结构的数组,段贝塞尔曲线由点数组中结构的数组,段贝塞尔曲线由点数组中的第的第14个点绘制而成。以后每段曲线只需要个点绘制而成。以后每段曲线只需要3个点:

17、个点:2个个控制点和一个结束点。前一段曲线的结束点会自动被用控制点和一个结束点。前一段曲线的结束点会自动被用作后一段曲线的起始点。作后一段曲线的起始点。c第09章二维图形图像处理共31页,您现在浏览的是第14页!159.2.5 椭圆椭圆1.DrawEllipse方法方法 1)给定椭圆左上角坐标和椭圆的外接矩形的宽度和高度给定椭圆左上角坐标和椭圆的外接矩形的宽度和高度 public void DrawEllipse(Pen pen,int x,int y,int width,int height);其中,其中,pen为为Pen对象,对象,x,y为椭圆左上角的坐标,为椭圆左上角的坐标,width定

18、义椭圆外接矩形的宽度,定义椭圆外接矩形的宽度,height定义椭圆外接矩形的高度。定义椭圆外接矩形的高度。2)给定椭圆外接矩形的结构给定椭圆外接矩形的结构 public void DrawEllipse(Pen pen,Rectangle rect);其中,其中,rect为为Rectangle结构,用于确定椭圆的边界。结构,用于确定椭圆的边界。c第09章二维图形图像处理共31页,您现在浏览的是第15页!169.2.5 椭圆(续)椭圆(续)【例【例9-13】绘制椭圆示例。】绘制椭圆示例。c第09章二维图形图像处理共31页,您现在浏览的是第16页!179.2.6 扇形(续)扇形(续)2.FillP

19、ie方法方法 1)public void FillPie(Brush brush,int x,int y,int width,int height,int startAngle,int sweepAngle);其中,其中,brush为为SolidBrush对象,对象,x,y为椭圆左上角的坐标,为椭圆左上角的坐标,width定定义扇形外接矩形的宽度,义扇形外接矩形的宽度,height定义扇形外接矩形的高度,定义扇形外接矩形的高度,startAngle为起始角度(以度为单位),为起始角度(以度为单位),sweepAngle为延伸为延伸角度。角度。2)public void FillPie(Brus

20、h brush,Rectangle rect,float startAngle,float sweepAngle);其中,其中,rect为为Rectangle结构,用于确定扇形的边界。结构,用于确定扇形的边界。c第09章二维图形图像处理共31页,您现在浏览的是第17页!182.2.通通过过当当前前窗窗体体的的CreateGraphicsCreateGraphics方方法法,把把当当前前窗窗体体的的画画笔笔、字字体体、颜颜色色作作为为默默认认值值,获获取取对对GraphicsGraphics对对象象的的引引用用。例例如:如:Graphics g=this.CreateGraphics();3 3

21、.从继承自图像的任何对象创建从继承自图像的任何对象创建Graphics对象,例如:对象,例如:Bitmap myBitmap=new Bitmap(C:mytest1PicsmyPic.bmp);Graphics g=Graphics.FromImage(myBitmap);9.1.2 Graphics类(续)类(续)c第09章二维图形图像处理共31页,您现在浏览的是第18页!19 在代码中声明颜色的方式常用有两种:在代码中声明颜色的方式常用有两种:1.调用静态方法调用静态方法Color.FromArgb()指定任意颜色指定任意颜色,这种方法有两这种方法有两种常用形式。种常用形式。种形式为直接

22、指定三种颜色,方法原型为:种形式为直接指定三种颜色,方法原型为:Public static Color FromArgb(int red,int green,int blue);三个参数分别表示三个参数分别表示R、G、B三色,三色,Alpha值使用默认值值使用默认值255,即完全不透明。例如即完全不透明。例如:Color red=Color.FromArgb(255,0,0);第二种形式为四个参数,方法原型为:第二种形式为四个参数,方法原型为:Public static Color FromArgb(int alpha,int red,int green,int blue);四个参数分别表示透

23、明度、四个参数分别表示透明度、R、G、B三色值。三色值。9.1.3 颜色(续)颜色(续)c第09章二维图形图像处理共31页,您现在浏览的是第19页!209.1.4 画画笔和画刷笔和画刷 画画笔(笔(Pen)画画笔笔可可用用于于绘绘制制绘绘制制具具有有指指定定宽宽度度和和样样式式的的直直线线、曲曲线线或或轮廓形状。轮廓形状。下面的示例说明如何创建一支基本的蓝色画笔:下面的示例说明如何创建一支基本的蓝色画笔:Pen myPen=new Pen(Color.Blue)Pen myPen=new Pen(Color.Blue);Pen myPen=new Pen(Color.Blue,10.5f)Pe

24、n myPen=new Pen(Color.Blue,10.5f);也可以从画刷对象创建画笔对象,例如:也可以从画刷对象创建画笔对象,例如:SolidBrush myBrush=new SolidBrush(Color.Red)SolidBrush myBrush=new SolidBrush(Color.Red);Pen myPen=new Pen(myBrush)Pen myPen=new Pen(myBrush);Pen myPen=new Pen(myBrush,5)Pen myPen=new Pen(myBrush,5);【例【例9-2】画画笔(笔(PenPen)的用法。)的用法。c

25、第09章二维图形图像处理共31页,您现在浏览的是第20页!211)1)使用使用SolidBrushSolidBrush类定义单色画刷类定义单色画刷 SolidBrush类类用用于于定定义义单单色色画画刷刷。该该类类可可以以填填充充图图形形,比比如矩形、椭圆、多边形和路径。如矩形、椭圆、多边形和路径。【例【例9-3】单色画刷演示示例。】单色画刷演示示例。9.1.4 画笔和画刷(续)画笔和画刷(续)运行结果如右图所示:运行结果如右图所示:c第09章二维图形图像处理共31页,您现在浏览的是第21页!223)3)使用使用TextureBrush类填充复杂图像类填充复杂图像TextureBrush类使用

26、图像作为填充的样式,它可以使用例如类使用图像作为填充的样式,它可以使用例如.bmp、.jpg、.png等格式的图像。初始化一个新的等格式的图像。初始化一个新的TextureBrush对象需要指定填充的图像。对象需要指定填充的图像。【例【例9-5】创建】创建TextureBrush示例。示例。运行效果:运行效果:9.1.4 画笔和画刷(续)画笔和画刷(续)c第09章二维图形图像处理共31页,您现在浏览的是第22页!23【例【例9-6】使用点描述线性渐变。】使用点描述线性渐变。运行效果:运行效果:【例【例9-7】使用矩形描述线性渐变。】使用矩形描述线性渐变。运行效果:运行效果:9.1.4 画笔和画

27、刷(续)画笔和画刷(续)c第09章二维图形图像处理共31页,您现在浏览的是第23页!249.2 绘制基本图形绘制基本图形 所有绘制图形的方法都位于所有绘制图形的方法都位于GraphicsGraphics中。中。9.2.1 直线直线DrawLine方法:绘制一条直线,常用形式:方法:绘制一条直线,常用形式:1)绘制一条连接指定两个绘制一条连接指定两个Point结构的线。结构的线。public void DrawLine(Pen pen,Point pt1,Point pt2)其中,其中,Pen对象确定线条的颜色、宽度和样式;对象确定线条的颜色、宽度和样式;Point结构确定起点和终点。结构确定起

28、点和终点。2)绘制一条由坐标对指定的两个点的线。绘制一条由坐标对指定的两个点的线。public void DrawLine(Pen pen,int x1,int y1,int x2,int y2)其中,其中,Pen对象确定线条的颜色、宽度和样式;对象确定线条的颜色、宽度和样式;x1,y1为起点坐标,为起点坐标,x2,y2为终点坐标。为终点坐标。c第09章二维图形图像处理共31页,您现在浏览的是第24页!25矩形分为轮廓和封闭区域两部分矩形分为轮廓和封闭区域两部分DrawRectangle(或或DrawRectangles)用于绘制矩形的轮廓。用于绘制矩形的轮廓。FillRectangle(或或

29、FillRectangles)用用于于填填充充矩矩形形的的封封闭闭区区域。域。【例【例9-10】绘制矩形方法示例。】绘制矩形方法示例。9.2.2 矩形矩形 c第09章二维图形图像处理共31页,您现在浏览的是第25页!269.2.4 曲线曲线1.DrawCurve方法方法用光滑的曲线把给定的点连接起来,常用形式有:用光滑的曲线把给定的点连接起来,常用形式有:1)public void DrawCurve(Pen pen,Point points)其中,其中,Point结构类型的数组中指明各节点,默认弯曲强度为结构类型的数组中指明各节点,默认弯曲强度为0.5。注意,数组中至少要有注意,数组中至少要

30、有3个元素。个元素。2)public void DrawCurve(Pen pen,Point points,float tension)其中,其中,tension指定弯曲强度,该值范围为指定弯曲强度,该值范围为0.0f1.0f,超出此范围会,超出此范围会产生异常。当弯曲强度为零时,就是直线。产生异常。当弯曲强度为零时,就是直线。c第09章二维图形图像处理共31页,您现在浏览的是第26页!279.2.4 曲线(续)曲线(续)3.贝塞尔曲线贝塞尔曲线 每段贝塞尔曲线由每段贝塞尔曲线由4个点组成,两个端点(个点组成,两个端点(p1为起点,为起点,p2为终点)和两个控制点(为终点)和两个控制点(c1

31、和和c2)。曲线不经过控)。曲线不经过控制点,但是控制点如同一个磁体吸引曲线,影响并引制点,但是控制点如同一个磁体吸引曲线,影响并引导曲线向某个方向拉伸。导曲线向某个方向拉伸。c第09章二维图形图像处理共31页,您现在浏览的是第27页!289.2.4 曲线(续)曲线(续)【例【例9-12】绘制曲线示例。】绘制曲线示例。c第09章二维图形图像处理共31页,您现在浏览的是第28页!299.2.5 椭圆(续)椭圆(续)2.FillEllipse方法方法 1)给定椭圆左上角坐标和椭圆的外接矩形的宽度和高度给定椭圆左上角坐标和椭圆的外接矩形的宽度和高度 public void FillEllipse(B

32、rush brush,int x,int y,int width,int height);其中,其中,x,y为椭圆左上角的坐标,为椭圆左上角的坐标,width定义椭圆外接矩形的定义椭圆外接矩形的宽度,宽度,height定义椭圆外接矩形的高度。定义椭圆外接矩形的高度。2)给定椭圆外接矩形的结构给定椭圆外接矩形的结构 public void FillEllipse(Brush brush,Rectangle rect);其中,其中,rect为为Rectangle结构,用于确定椭圆的边界。结构,用于确定椭圆的边界。c第09章二维图形图像处理共31页,您现在浏览的是第29页!309.2.6 扇形(续)

33、扇形(续)1.DrawPie方法方法 1)public void Drawpie(Pen pen,int x,int y,int width,int height,int startAngle,int sweepAngle);其中,其中,pen为为Pen对象,对象,x,y为椭圆左上角的坐标,为椭圆左上角的坐标,width定义扇形外接矩形的宽度,定义扇形外接矩形的宽度,height定义扇形外接矩形的高度,定义扇形外接矩形的高度,startAngle为起始角度(以度为单位),为起始角度(以度为单位),sweepAngle为延伸角度。为延伸角度。2)public void DrawPie(Pen pen,Rectangle rect,float startAngle,float sweepAngle);其中,其中,rect为为Rectangle结构,用于确定扇形的外接矩形。结构,用于确定扇形的外接矩形。c第09章二维图形图像处理共31页,您现在浏览的是第30页!319.2.6 扇形(续)扇形(续)【例【例9-14】绘制扇形示例。】绘制扇形示例。c第09章二维图形图像处理共31页,您现在浏览的是第31页!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁