图形图像处理学习教案_第1页
图形图像处理学习教案_第2页
图形图像处理学习教案_第3页
图形图像处理学习教案_第4页
图形图像处理学习教案_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、图形图像处理图形图像处理(chl)第一页,共53页。2.System.Drawing.Drawing2D名称空间提供了高级的二维和矢量图形处理功能。主要有:梯度型画刷、Matrix类(用于定义几何变换)和GraphicsPath类等。3.System.Drawing.Imaging名称空间提供了高级图像处理功能。4.System.Drawing.Text名称空间提供了高级字体和文本排版功能第1页/共53页第二页,共53页。Size s = new Size (5,5);Rectangle用来指定矩形的坐标,它由一个Point和一个Size组成,其中Point表示矩形左上角,Size表示矩形大小

2、。第2页/共53页第三页,共53页。 Point p = new Point (1,2); Size s = new Size (5,6); Rectangle r2 = new Rectangle (p, s);第3页/共53页第四页,共53页。页面坐标系(Page coordinates)是指某种映射模式下的一种(y zhn)坐标系。默认情况下,世界坐标系、设备坐标系和页面坐标系是一致的。第4页/共53页第五页,共53页。(binhun)(world transformation),第二次是从页面坐标向设备坐标的页面变换(binhun)(page transformation)。在程序中,

3、可以通过调用Graphics对象的TranslateTransform方法改变世界变换(binhun)的原点,通过设置 Graphics对象的PageUnit属性改变页面变换(binhun)的度量单位。第5页/共53页第六页,共53页。 myGraphics.PageUnit = GraphicsUnit.Inch; Pen myPen = new Pen(Color.Black, 1 / myGraphics.DpiX); myGraphics.DrawLine(myPen, 0, 0, 2, 2); 上面的代码分别调用了上面的代码分别调用了GraphicsGraphics对象的对象的世界变

4、换和页面变换,使用英寸作为度量单世界变换和页面变换,使用英寸作为度量单位,并让坐标系的原点距工作区左边缘位,并让坐标系的原点距工作区左边缘0.50.5英寸、距工作区顶部英寸、距工作区顶部0.50.5英寸,然后从英寸,然后从(0,0)(0,0)到到(2,2)(2,2)绘制一条绘制一条(y tio)(y tio)直线。右图为运行效图。直线。右图为运行效图。XY1212第6页/共53页第七页,共53页。绘制图形图像前,首先必须创建Graphics对象(duxing),然后e.Graphics; 第7页/共53页第八页,共53页。3. 从继承自图像的任何对象创建Graphics对象,例如: Bitma

5、p myBitmap = new Bitmap(C:mytest1PicsmyPic.bmp); G r a p h i c s g = Graphics.FromImage(myBitmap); 第8页/共53页第九页,共53页。G:绿色,取值范围0255,0表示没有绿色成分,255为饱和绿色;B:蓝色,取值范围0255,0表示没有蓝色成分,255为饱和蓝色;A:Alpha值,即透明度,取值范围0255,0表示完全透明,255表示完全不透明。第9页/共53页第十页,共53页。;四个参数分别表示透明度、R、G、B三色值。第10页/共53页第十一页,共53页。第11页/共53页第十二页,共53页

6、。第12页/共53页第十三页,共53页。Pen(Color.Blue, 10.5f);也可以从画刷对象创建画笔对象,例如: SolidBrush myBrush = new SolidBrush(Color.Red); Pen myPen = new Pen(myBrush); Pen myPen = new Pen(myBrush, 5);第13页/共53页第十四页,共53页。 Point结构(jigu)确定起点和终点。 2) 绘制一条由坐标对指定的两个点的线。 public void DrawLine (Pen pen,int x1, int y1,int x2,int y2)其中,Pen

7、对象确定线条的颜色、宽度和样式; x1,y1为起点坐标,x2,y2为终点坐标。第14页/共53页第十五页,共53页。Pen myPen = new Pen(Color.Blue, 2);myPen.CustomEndCap = arrow;Graphics类提供的TranslateTransform方法可以帮助我们实现平移坐标系的功能。第15页/共53页第十六页,共53页。第16页/共53页第十七页,共53页。第17页/共53页第十八页,共53页。第18页/共53页第十九页,共53页。第19页/共53页第二十页,共53页。pen, Point points)第20页/共53页第二十一页,共53

8、页。第21页/共53页第二十二页,共53页。pen ,Point points,float tension )其中,tension指定弯曲强度,该值范围为0.0f-1.0f,超出此范围会产生异常。当弯曲强度为零时,就是直线。第22页/共53页第二十三页,共53页。pen ,Point points )其中,Point结构类型的数组中指明各节点。 2) public void DrawClosedCurve (Pen pen ,Point points,float tension FillMode fillmode)其中,fillmode指明曲线封闭区域内以何种方式填充。第23页/共53页第二十

9、四页,共53页。第24页/共53页第二十五页,共53页。贝塞尔曲线(qxin),常用形式: public void DrawBezier (Pen pen ,Point points)其中points是Point结构的数组,第一段贝塞尔曲线(qxin)由点数组中的第1-4个点绘制而成。以后每段曲线(qxin)只需要3个点:2个控制点和一个结束点。前一段曲线(qxin)的结束点会自动被用作后一段曲线(qxin)的起始点。第25页/共53页第二十六页,共53页。第26页/共53页第二十七页,共53页。(kund), height定义椭圆外接矩形的高度。 2)给定椭圆外接矩形的结构 public v

10、oid DrawEllipse(Pen pen, Rectangle rect);其中,rect为Rectangle结构,用于确定椭圆的边界。第27页/共53页第二十八页,共53页。 sweepAngle为延伸角度。 2) public void DrawPie(Pen pen, Rectangle rect, float startAngle, float sweepAngle);其中,rect为Rectangle结构,用于确定扇形的外接矩形。第28页/共53页第二十九页,共53页。第29页/共53页第三十页,共53页。第30页/共53页第三十一页,共53页。类类说明说明SolidBrush

11、SolidBrush用纯色填充图形用纯色填充图形TextureBrushTextureBrush用基于光栅的图像用基于光栅的图像( (位图、位图、JPGJPG等等) )填充图形填充图形LinearGradientBrushLinearGradientBrush用颜色渐变填充图形用颜色渐变填充图形PathGradientBrushPathGradientBrush用渐变效果填充图形用渐变效果填充图形HatchBrushHatchBrush用各种图案填充图形用各种图案填充图形第31页/共53页第三十二页,共53页。g.FillEllipse(solidBrush, r);第32页/共53页第三十三

12、页,共53页。运行运行(ynxng)(ynxng)结果如右图所示:结果如右图所示:第33页/共53页第三十四页,共53页。( R e c t a n g l e r e c t , C o l o r color1,Color color2,float angle) (3) 指定(zhdng)渐变的模式。 Public LinearGradientBrush ( R e c t a n g l e r e c t , C o l o r color1,Color color2,LinearGradientMode linearGradientMode)第34页/共53页第三十五页,共53页。第

13、35页/共53页第三十六页,共53页。hStyle枚举。例如:HatchStyle.Horizontal水平线的图案HatchStyle.ForwardDiagonal从左上到右下的对角线的线条图案HatchStyle.DiagonalBrick具有分层砖块外观的阴影HatchStyle.Shingle 带有对角分层鹅卵石外观的阴影HatchStyle.Sphere具有球体彼此相邻放置的外观的阴影第36页/共53页第三十七页,共53页。第37页/共53页第三十八页,共53页。函数,常用有:public TextureBrush (Image image, Rectangle rect)publ

14、ic TextureBrush (Image image,WrapMode wrapMode, Rectangle rect)其中,image指定要填充的图像;rect指定图像的矩形块;wrapMode指定如何填充图像,这是一个枚举类型,其值如表8-2所示。第38页/共53页第三十九页,共53页。第39页/共53页第四十页,共53页。GraphicsPath();path.AddEllipse(this.ClientRectangle);2PathGradientBrush类PathGradientBrush称为路径渐变画刷,路径渐变画刷用于从中心向四周通过颜色渐变来填充路径的内部区域。第40

15、页/共53页第四十一页,共53页。第41页/共53页第四十二页,共53页。8.4 .1 8.4 .1 图像图像(t xin(t xin) )的绘制的绘制1. 图像的显示图像的显示 GDI+提供了两个类用来表示图像:提供了两个类用来表示图像:Bitmap类和类和Metafile类。类。 从文件中读取一个位图并在屏幕中显示出此图像需要三个步骤:从文件中读取一个位图并在屏幕中显示出此图像需要三个步骤: 创建一个创建一个Bitmap对象指明要显示的图像文件;对象指明要显示的图像文件; 创建一个创建一个Graphics对象表明要使用绘图平面;对象表明要使用绘图平面; 通过调用通过调用Graphics对象

16、的对象的DrawImage方法显示图像。方法显示图像。第42页/共53页第四十三页,共53页。第43页/共53页第四十四页,共53页。第44页/共53页第四十五页,共53页。来指定,这些属性都是只读属性,如表8-3所示。3.还可以(ky)利用Save方法将一种图像格式保存为另一种图像格式。4. 要将绘制的信息(图形或者图像)保存到图像文件中,其对应的Graphics对象应该从Image对象获取,例如:Graphics g = Graphics.FromImage(image);其中image为任何从Image类继承的对象,例如Bitmap对象。第45页/共53页第四十六页,共53页。第46页/共53页第四十七页,共53页。第47页/共53页第四十八页,共53页。第48页

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论