1、第六章第六章图形图像处理第2 2页本章目标d能够掌握Visual Basic语言中的关于图形图像处理的基本方法d掌握各类图形控件的使用d熟练使用相关的绘图方法绘制基本的图形,设置颜色、线型、填充样式d掌握利用图形和图像控件及相关方法显示图片或者制作小型动画的方法第3 3页任务任务1美丽的电视发射塔美丽的电视发射塔d本任务使用VB的各类图形方法在窗体上绘制一组图案。程序运行开始,就在窗体上显示出绿色的电视发射塔身和不断发散开来的彩色电波。鼠标在窗体的任意位置单击后,计算机屏幕上擦除所有图形。第4 4页任务分析该任务我们要研究以下内容1.坐标系统的建立2.标准图形控件3.绘图属性的设置4.图形方法
2、第5 5页任务分析1.坐标系统的建立在VB 中每个容器都有一个坐标系,以便实现对对象的定位。坐标原点、坐标度量单位和坐标轴的方向是坐标系统的三要素。默认坐标系第6 6页任务分析1.坐标系统的建立 自定义坐标系Scale方法可以帮助我们设置一个坐标系语法:对象名语法:对象名.Scale xLeft,yTop)-(xRright,yBottom)对象名:可以是窗体、图形框或打印机,默认为带有焦点的当前窗体。Step:表示采用当前作图位置的相对值。(xLeft,yTop):对象的左上角的坐标值。xRight,yBottom):对象的右下角的坐标值。第7 7页任务分析1.坐标系统的建立 设置绘图坐标绘
3、图方法的水平或垂直坐标设置。语法:对象名.CurrentX=x对象名.CurrentY=yx:确定水平坐标的数值。y:确定垂直坐标的数值。第8 8页任务分析2.标准图形控件在工具箱上有两个比较重要的图形控件,形状控件(Shape控件)和画线工具控件(Line控件)。使用以上两个控件可绘制多种图形和线条。在工具箱上可以看到这两个控件。第9 9页任务分析2.标准图形控件 形状控件(Shape控件)用于在窗体上绘制矩形、椭圆、圆形、圆角矩形或者圆角正方形。Shape:定义Shape的形状。语法:对象名.Shape=Value 第1010页任务分析2.标准图形控件 画线工具控件(Line控件)修饰窗体
4、和显示直线。可以在窗体或其他容器控件中画出水平线、垂直线或者对角线。语法:对象名.X1=value对象名.Y1=value对象名.X2=value对象名.Y2=value通过(X1,Y1)和(X2,Y2)两点画一条直线。第1111页任务分析2.标准图形控件程序代码中引用Shape控件和Line控件会受到以下限制:I.Shape控件和Line控件没有事件,在运行中不能响应系统产生的事件或用户操作。II.Shape控件和Line控件只有有限的属性和方法,在实际中很少使用,但改变它们的属性值可以产生各种视觉效果。III.Shape控件和Line控件没有TabIndex属性,运行时不能用鼠标或键盘访问
5、这些控件。第1212页任务分析3.绘图属性的设置设置线宽DrawWidth设置所画线的宽度或点的大小。以像素为度量单位,最小值为1。语法:对象名.DrawWidth=Value 设置线型DrawStyle设置所画线的形状。根据所赋的数值绘制图形的线条样式发生该变。语法:对象名.DrawStyle=ValueValue的值决定其线型的样式,设置值如表6-2。第1313页任务分析3.绘图属性的设置设置绘图模式属性DrawMode用于返回或设置一个值,以决定图形方法的输出外观或者Shape及Line控件的外观,具体的说,就是设置一种所画形状的颜色与屏幕已存在颜色的合成方式。语法:对象名.DrawMo
6、de=ValueValue的值决定其颜色合成样式,Value的值取116之间 第1414页任务分析3.绘图属性的设置设置边框I.BorderStyle属性设置或返回对象的边框样式。语法:对象名语法:对象名.BorderStyle=ValueValue的值决定其线型的样式II.BorderWidth属性设置和返回控件对象边框的宽度。语法:对象名语法:对象名.BorderWidth=ValueValue的值决定其线型的样式,设置值范围为18192之间。III.BorderColor属性设置和返回控件对象边框的颜色。语法:对象名语法:对象名.BorderColor=colorcolor:值或常数,用
7、来确定边框颜色 第1515页任务分析3.绘图属性的设置设置色彩I.BackColor:返回或设置背景色语法:对象名.BackColor=colorII.ForeColor:返回或设置前景色语法:对象名.ForeColor=colorIII.设置颜色使用RGB函数或者QBColor函数 语法:RGB(red,green,blue)参数说明参数说明Red,green,bule分别代表颜色中的红、绿、蓝色成分,数值范围都为0255 语法:QBColor(Value)Value的值取015之间的整数值,每个值代表一种颜色。第1616页任务分析3.绘图属性的设置设置填充效果I.FillColor:指定填
8、充图案的颜色语法:对象名.FillColor=color默认情况下,FillColor属性值设置为0(黑色),除Form对象外,如果FillStyle属性设置为默认值1(透明),则忽略FillColor属性设置值。II.FillStyle:设置填充图案的样式语法:对象名.FillStyle=value第1717页任务分析4.图形方法I.使用图形方法能使图形设计更方便,并减少程序代码。II.用图形方法创建图形是在程序代码中进行的,绘图效果需要在运行应用程序时才能看到。III.对于界面上的简单绘图,图形方法不能代替图形控件的作用。第1818页任务分析4.图形方法 Pset方法功能:在指定对象的指定
9、位置画指定颜色的点。语法:对象名语法:对象名.Pset(x,y),Color对象名:表示点绘制于的对象,可以是窗体、图形框或打印机,默认为当前窗体。(x,y):点的坐标。Color:设置点的颜色,默认值为前景色。如果设置点的颜色为背景色就可以擦除该点。第1919页任务分析4.图形方法Line方法功能:在对象的两个指定点之间画指定颜色的直线、矩形或填充框。语法:对象名语法:对象名.Line Step(x1,y1)-Step(x2,y2),Color,BF对象名:直线绘制于的对象,可以是窗体或图形框,默认为当前窗体。Step:表示采用当前作图位置的相对值。(x1,y1):为线段的起点坐标或矩形的左
10、上角坐标。(x2,y2):为线段的终点坐标或矩形的右下角坐标。Color:线段或矩形的颜色B:表示画矩形。F:表示用画矩形的颜色来填充举行,F必须与关键字B一起使用。如果只用B不用F,则矩形的填充由FillColor和FillStyle属性决定。第2020页任务分析4.图形方法 Circle方法功能:画圆、椭圆、扇形、圆弧或楔形饼块。语法:对象名语法:对象名.CircleStep(x,y),半径半径,Color,起始点起始点,终止点终止点,长短轴比长短轴比率率对象名:同上。Step:表示采用当前作图位置的相对值。(x,y):为圆心坐标。Color:线段或矩形的颜色。第2121页任务分析4.图形
11、方法 Circle方法(续)对象名对象名.CircleStep(x,y),半径半径,Color,起始起始点点,终止点终止点,长短轴比率长短轴比率起始点、终止点:圆弧和扇形通过参数起始点和终止点控制,采用逆时针方向绘弧,以弧度为单位,取值在02之间,当在起始点和终止点前加一负号时,表示画出圆心到圆弧的径向线。参数前出现的负号并不能改变绘图时坐标系中旋转方向,该旋转方向总是起始点按逆方向画到终止点。长短轴比率:指定所画椭圆的水平长度和垂直长度比。该参数是正的浮点数,不能为负。控制绘制的图形是圆还是椭圆。小于1,椭圆沿垂直轴拉长;大于1,椭圆沿水平轴拉长。默认值为1,表示绘制圆形。第2222页任务分
12、析4.图形方法 Cls方法用于清除运行时窗体或图形框所生成的图形和文本。语法:对象名语法:对象名.Cls对象名:表示图形绘制于的对象,默认为当前窗体。注意:设计时放在窗体上的用注意:设计时放在窗体上的用Picture属性设置的背景位图或其上的控件不属性设置的背景位图或其上的控件不受影响,设置受影响,设置AutoReDraw的属性值为的属性值为True的情况下运行的文本和图的情况下运行的文本和图形也不受影响。形也不受影响。第2323页任务实施1.创建新工程2.从工具箱中选择定时器控件拖入窗体3.设置窗体及控件的属性对象对象控件名控件名属性名属性名属性值属性值FormForm1Caption图形控
13、件的使用AutoreDrawTrueTimerTimer1Interval100第2424页任务实施4.在代码窗口编写事件代码并保存、运行源代码DrawWidth=1 设置线宽PSet(ScaleWidth/3,1000)在三分之一宽度和高度1000处画点ForeColor=RGB(0,255,0)设置前景色为绿色For i=1 To 50 Step 5 设置循环生成直线DrawWidth=i 设置直线宽度值为循环变量Line-Step(0,ScaleHeight/10)从当前位置按步幅ScaleHeight/10画线Next iDrawWidth=1 重新设置线宽FillStyle=6 设置
14、填充样式为十字线FillColor=ForeColor 设置填充线的颜色为前景色Circle(ScaleWidth/3,2000),300,0.5 画横向椭圆第2525页任务设计完成效果第2626页任务任务2带有节日提醒的个性月历设计带有节日提醒的个性月历设计d生成一个窗体,创建一个能够翻页的月历,显示对应的月份,并显示所有的节日列表。执行程序,在展开的窗体中拖动滚动条可以看到左边图片和月份显示的变化,拖动文本框的上下和左右滚动条即可查看节日列表。第2727页任务分析该任务我们要研究以下内容:1.图片框控件2.图像框控件3.装载图片和保存图片函数第2828页任务分析1.图片框(PictureB
15、ox)控件该控件作为其他控件的容器,可以显示图形方法或Print方法的输出。图片框控件可用来显示各种图形,而且支持多种图片格式,如位图(.bmp/.dib)、图标(.ico)、图元文件(.wmf)、增强形图元文件(.emf)、JPEG格式(.jpg)或GIF格式(.gif)文件等。第2929页任务分析1.图片框(PictureBox)控件Picture属性语法:对象名语法:对象名.Picture=picture对象名:对象表达式。picture:字符串表达式,指定一个包含图片的文件。第3030页任务分析1.图片框(PictureBox)控件添加图片的两种方法如下:在设计时加载在属性窗口中找到P
16、icture属性。单击右边的“”按钮,就会出现打开文件对话框,选择要添加的图片。在运行时加载在运行时可以通过Loadpicture函数来设置Picture属性,也可以将其他控件的Picture值赋给PictureBox控件的Picture属性。第3131页任务分析1.图片框(PictureBox)控件Autosize属性设置图片框的大小是否随着加载图形的大小而自动变化。语法:对象名语法:对象名.Autosize=Boolean对象名:对象表达式。boolean:一个用来指定是否能够调整图形大小的布尔表达式。第3232页任务分析2.图像框(Image)控件图像控件也可以用来显示图形。图像控件可以
17、显示的格式包括位图、图标、图元文件、增强形图元文件、JPEG或GIF文件。图像控件还可以响应Click事件,可代替命令按钮,或作为工具条的项目。第3333页任务分析2.图像框(Image)控件Picture属性功能:用于返回或设置控件中要显示的图片。语法:对象名语法:对象名.Picture=picture对象名:对象表达式。picture:字符串表达式,指定一个包含图片的文件 第3434页任务分析2.图像框(Image)控件Stretch 属性功能:用于返回或设置一个值,用来指定图形是否要调整大小以适应Image控件的大小。语法:对象名语法:对象名.Stretch=boolean对象名:对象表
18、达式。boolean:一个用来指定是否能够调整图形大小的布尔表达式。注意:注意:Stretch 属性和属性和Autosize属性的不同之处在于前者调整图片适应属性的不同之处在于前者调整图片适应图像框控件,后者调整图片框控件适应图片。图像框控件,后者调整图片框控件适应图片。第3535页任务分析4.图像框(Image)控件图像控件使用的系统资源比图片框控件少,而且重新绘图速度快,但它只支持图片控件的一部分属性、事件和方法,而图片框控件具有作为其他控件提供容器和支持图形方法的功能。图像控件和图片框控件支持相同的图片格式,但是图像控件中可以调整图片的大小使之适合控件的大小,而在图片框控件中却不能这样做
19、。第3636页任务分析3.图像处理函数LoadPicture函数功能:将图形载入各类控件的Picture属性或Icon属性中.语法:LoadPicture(FileName,Size,Colorepth,x,y)FileName:字符串表达式知道能够一个文件名,可以包括文件夹和驱动器,如果未指定文件名,LoadPicture清除图像或PictureBox控件。才使用x和y。例如:Form1.Icon=LoadPicture(“c:tpheart.ico”)第3737页任务分析3.图像处理函数 SavePicture函数功能:将对象或控件的Picture或Image属性的图形保存到文件中。语法:
20、SavePicture Picture,stringexpressionPicture:产生图形的图片框控件或图像框控件名。Stringexpression:要保存的图形文件名。例如:SavePicture Image1,”d:ssabc.jpg”将对象Image1中的图片保存到D盘ss文件夹下的名为abc.jpg文件中。第3838页任务分析小型动画的实现:图像框和图片框与定时器结合,利用定时器的时间间隔属性设置,在图像框和图片框中不断装载不同的图片就会在视觉上产生图片的动态效果。第3939页任务实施1.创建新工程2.从工具箱中选择控件拖入窗体第4040页任务实施3.设置窗体及控件的属性对象对
21、象控件名控件名属性名属性名属性值属性值FormForm1Caption图片框和图像框的使用示例月历控件的使用PicturePicture1AutosizeTruePicture2AutosizeTrueLabelLabel1Caption节日提醒ImageImage1StretchTrueHscrollBarHscrollBar1Max12Min1TextBoxText1MultiLineTrueScrollBars3LockedTrue第4141页任务实施4.在代码窗口编写事件代码并保存、运行源代码i=HScroll1.ValueImage1.Picture=LoadPicture(App.
22、Path&yl&i&.jpg)If i 10 ThenPicture1.Picture=LoadPicture(App.Path&yl0.gif)Picture2.Picture=LoadPicture(App.Path&yl&HScroll1.Value&.gif)Elsei=i-10Picture1.Picture=LoadPicture(App.Path&yl1.gif)Picture2.Picture=LoadPicture(App.Path&yl&i&.gif)第4242页任务设计完成效果第4343页总结d 本课讲述了以下内容:1.图形控件2.绘图属性3.图形方法4.图片和图像控件5.图像处理函数回到目录回到目录