Visual Basic.NET程序设计课件第10章_第1页
Visual Basic.NET程序设计课件第10章_第2页
Visual Basic.NET程序设计课件第10章_第3页
Visual Basic.NET程序设计课件第10章_第4页
Visual Basic.NET程序设计课件第10章_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

第10章图形图像编程教学目标了解.Net框架提供的的图形类库,掌握基本图形绘制方法,初步了解VisualBasic.NET语言处理位图图像和保存图像功能。

目录10.1图形图像绘制基础知识10.2绘制基本图形10.3创建画刷填充图形10.4图像处理10.5文字处理10.6综合应用实验十图形图像的绘制10.1图形图像绘制基础知识10.1.1GDI+概述10.1.2Graphics类10.1.3坐标10.1.4Paint事件10.1.1GDI+概述GDI是GraphicsDeviceInterface的缩写,含义是图形设备接口,它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。GDI+技术是由GDI技术“进化”而来,出于兼容性考虑,WindowsXP仍然支持以前版本的GDI,但是在开发新应用程序的时候,开发人员为了满足图形输出需要应该使用GDI+,因为GDI+对以前的Windows版本中GDI进行了优化,并添加了许多新的功能。GDI+的中介作用10.1.2Graphics类要进行图形处理,必须首先创建Graphics对象,然后才能利用它进行各种画图操作。创建Graphics对象的形式有:(1)在窗体或控件的Paint事件中直接引用Graphics对象GDI+的中介作用(2)从当前窗体或控件获取对Graphics对象的引用(3)从继承自图像的任何对象创建Graphics对象。10.1.3坐标坐标系以像素为单位,像素指的是屏幕上的亮点。每个像素都有一个坐标与之对应,左上角的坐标为(0,0),水平向右为正,垂直向下为正。一般情况下以(x,y)代表屏幕上某个像素的坐标点,其中水平以X坐标值表示,垂直以Y坐标值表示。该点的坐标(x,y)是(4,3)10.1.4Paint事件在屏幕上进行绘制的操作称为“绘画”。窗体和控件都有一个Paint事件。每当需要重新绘制窗体和控件(例如,首次显示窗体或窗体由另一个窗口覆盖)时就会发生该事件。用户所编写的用于显示图形的任何代码通常都包含在Paint事件处理程序中。10.2绘制基本图形10.2.1创建画笔10.2.2绘制直线10.2.3绘制矩形10.2.4绘制多边形10.2.5绘制曲线10.2.6绘制椭圆和弧线10.2.1创建画笔在GDI+中,可使用画笔(Pen)对象于绘制具有指定宽度和样式的线条、曲线以及勾勒形状轮廓。画笔可用于绘制具有指定宽度和样式的直线、曲线或轮廓形状。画笔(Pen)类的构造函数有四种,使用方法如下。(1)创建某一颜色的Pen对象:PublicSubNew(ByValcolorAsColor)(2)创建某一刷子样式的Pen对象:PublicSubNew(ByValbrushAsBrush)(3)创建某—刷子样式并具有相应宽度的Pen对象:PublicSubNew(ByValbrushAsBrush,ByValwidthAsSingle)(4)创建某一颜色和相应宽度的Pen对象:PublicSubNew(ByValcolorAsColor,ByValwidthAsSingle)【例10.1】画笔的用法演示示例。10.2.2绘制直线有两种绘制直线的方法:DrawLine()方法和DrawLines()方法。DrawLine()用于绘制一条直线,DrawLines()用于绘制多条直线。常用形式有:[格式1]:OverloadsPublicSubDrawLine(ByValpenAsPen,ByValx1AsInteger,ByValy1AsInteger,ByValx2AsInteger,ByValy2AsInteger)其中x1,y1为起点坐标,x2,y2为终点坐标。例如:e.Graphics.DrawLine(blackPen,100,100,200,100)[格式2]:OverloadsPublicSubDrawLine(ByValpenAsPen,ByValpt1AsPoint,ByValpt2AsPoint)其中Pen对象确定线条的颜色、宽度和样式。Point结构确定起点和终点。【例10.1】画笔的用法演示示例。10.2.2绘制直线[格式3]:OverloadsPublicSubDrawLines(ByValpenAsPen,ByValpoints()AsPoint)这种方法用于绘制连接一组终结点的线条。数组中的前两个点指定第一条线。每个附加点指定一个线段的终结点,该线段的起始点是前一条线段的结束点。。【例】连接一组终结点的线条。10.2.3绘制矩形使用DrawRectangle()方法可以绘制矩形,常用形式有:[格式1]:OverloadsPublicSubDrawRectangle(ByValpenAsPen,ByValrectAsRectangle)其中rect表示要绘制的矩形的Rectangle结构。[格式2]:OverloadsPublicSubDrawRectangle(ByValpenAsPen,ByValxAsSingle,ByValyAsSingle,ByValwidthAsSingle,ByValheightAsSingle)其中x,y为矩形左上角坐标值。参数width是要绘制矩形的宽度,参数height是要绘制矩形的高度。【例】绘制矩形。10.2.4绘制多边形多边形分为空心多边形和填充多边形。(1)绘制空心多边形PublicSubDrawPolygon(ByValpenAsPen,ByValpointAsPoint())(2)绘制填充多边形PublicSubFillPolygon(ByValbrushAsBrush,ByValpointAsPoint())其中Point数组是由一组Point结构对象定义的多边形。Pen对象指出画线的画笔。注意填充多边形需用画刷而不是画笔。【例10.2】设计一个窗体,说明多边形方法的使用。10.2.5绘制曲线

曲线有空心曲线和填充曲线之分。Graphics.DrawClosedCurve可以画出一个平滑封闭的曲线。Graphics.FillClosedCurve可以画出一个填充闭合曲线。(1)绘制空心闭合曲线PublicSubDrawClosedCurve(ByValpenAsPen,ByValpointsAsPoint())(2)绘制填充闭合曲线PublicSubFillClosedCurve(ByValpenAsPen,ByValpointsAsPoint())points表示曲线经过点的数组,其中必须包含至少4个点。【例10.3】绘制闭合曲线。10.2.6绘制椭圆和弧线

椭圆是一种特殊的封闭曲线,Graphics类专门提供了绘制椭圆的两种方法:DrawEllipse()方法和FillEllipse()方法。常用形式有:[格式1]:PublicSubDrawEllipse(ByValpenAsPen,ByValrectAsRectangle)其中rect为Rectangle结构,用于确定椭圆的边界。[格式2]:PublicSubDrawEllipse(ByValpenAsPen,ByValxAsInteger,ByValyAsInteger,ByValwidthAsInteger,ByValheightAsInteger)其中x,y为椭圆左上角的坐标,width定义椭圆的边框的宽度,height定义椭圆的边框的高度。[格式3]:PublicSubFillEllipse(ByValbrushAsBrush,ByValrectAsRectangle)填充椭圆的内部区域。其中rect为Rectangle结构,用于确定椭圆的边界。【例10.3】绘制椭圆和弧线

。10.3创建画刷填充图形画刷是可与Graphics对象一起使用来创建实心形状和呈现文本的对象。可以用画刷填充各种图形形状,如矩形、椭圆、扇形、多边形和封闭路径等。画刷(Brush)类是一个抽象类,本身不能实例化。一般使用它的派生类。主要有以下几种不同类型的画刷Brush派生类:10.3创建画刷填充图形(1)SolidBrush画刷SolidBrush类用来定义单一颜色的Brush,用纯色进行绘制。其构造函数如下:PublicSubNew(ByValcolorAsColor)(2)HatchBrush画刷类似于SolidBrush,但是可以利用该类从大量预设的图案中选择绘制时要使用的图案,而不是纯色。HatchBrush画刷具有三个属性,分别如下:HatchStyle属性:获取此HatchBrush对象的阴影样式。BackgroundColor属性:获取此HatchBrush对象的背景色。ForegroundColor属性:获取此HatchBrush对象的前景色10.3创建画刷填充图形(3)LinearGradientBrush画刷使用两种颜色渐变混合的进行绘制。PublicSubNew(ByValpoint1AsPoint,ByValpoint2AsPoint,ByValcolor1AsColor,ByValcolor2AsColor)图10-9线性渐变填充10.3创建画刷填充图形(4)TextureBrush画刷使用纹理(如图像)进行绘制。TextureBrush类允许使用一幅图像作为填充的样式。图10-10图像作为填充的样式10.4图像处理10.4.1显示图像10.4.2图像的平移、旋转和缩放10.4.3彩色图像变换灰度图像10.4.1显示图像可以使用GDI+显示以文件形式存在的图像文件。图像文件可以是BMP、JPEG、GIF、TIFF、PNG等。实现步骤为:(1)创建一个Bitmap对象,指明要显示的图像文件;创建Bitmap对象,Bitmap类有很多重载的构造函数,其中之一是:PublicSubNew(ByValfilenameAsString)filename是位图文件的名称。可以利用该构造函数创建Bitmap对象,例如:DimbitmapAsNewBitmap("tu1.jpg");(2)创建一个Graphics对象,表示要使用的绘图平面;

DimgAsGraphics=窗体或图片框控件.CreateGraphics()(3)调用Graphics对象的DrawImage方法显示图像。【例10.4】将文件对话框选中的图像文件原样显示和缩小显示。

10.4.1显示图像【例10.4】将文件对话框选中的图像文件原样显示和缩小显示。

10.4.2图像的平移、旋转和缩放Graphics类提供了三种对图像进行几何变换的方法,它们是TranslateTransform()方法、RotateTransform()方法和ScaleTransform()方法,分别用于图形图像的平移、旋转和缩放。【例10.5】三种变换方法示例。图10-12三种变换方法10.4.3彩色图像变换灰度图像

彩色图像像素的颜色是由三种基本色颜色,即红(R)、绿(G)、蓝(B)有机组合而成的,称为三基色。每种基色可取0~255的值,因此由三基色可组合成(256*256*256)1677万种颜色,每种颜色都有其对应的R、G、B值。

灰度是指黑白图像中点的颜色深度,范围一般从0到255,白色为255,黑色为0,故黑白图片也称灰度图像,在医学、图像识别领域有很广泛的用途。下面讲解如何获取像素点颜色,并将整个图片转成灰

温馨提示

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

评论

0/150

提交评论