第18课: 图像处理
图像处理是Visual Basic编程里一个非常重要的部分,因为一个有吸引力的接口才能吸引用户。在旧的BASIC里,绘画和设计图像被认为是困难的工作,因为我们只能在一个文本的环境中进行编程。然而,在Visual Basic 6中,因为我们可在视觉性的环境中进行编程,这些工作已变得容易。VB6中有四个基本控件可以用它来绘制图形,它们是线条控件(Line Control),形状控件(Shape Control),图像框(Image Box)和图片框(Picture Box)
18.1 线条控件(Line Control)和形状控件(Shape Control)
要画一条直线,只要按一下线条控件然后用鼠标在表单画上线条。画线后,你可以改变它的颜色,宽度和样式的BorderColor(边框颜色),BorderWidth(边框宽度)和BorderStyle(边框样式)等属性。
同样,要绘制一个形状,只需点击形状控件然上绘制形状。默认的形状是一个矩形,它的形状属性设置在0。您可以通过改变形状属性的值来改变形状。方形,椭圆形,圆形,圆角矩形及圆角方形的属性分别是1,2,3,4和5。此外,你可使用的BackColor属性来设置它的背景颜色,用BorderStyle属性来设置边框样式,及使用BorderColor 和BorderWidth属性来设置边框颜色及边框宽度。
范例18.1
这个程序允许用户从列表框中的选项列表中选择一个特定的形状来改变形状,以及通过一个通用对话框来改变它的颜色。
这个程序里要用到的对象是一个列表框,一个命令按钮,一个形状控制和一个通用对话框。通用对话框可以通过点击菜单上的“工程”项目,单击“部件”,然后选择“Microsoft通用对话框控件6.0(Microsoft Common Dialog Control 6.0)来加入到工具箱中,你可以将它拖动到表单中。通过AddItem方法可以把项目添加到列表框中的清单。通用对话框呈现标准颜色的程序如下:
- CommonDialog1.Flags = &H1&
- CommonDialog1.ShowColor
- Shape1.BackColor = CommonDialog1.Color
程序的最后一行让用户在对话框中点击一个特定的颜色来改变背景颜色,如下面的图中所示:
界面


源程序
- Private Sub Form_Load()
- List1.AddItem "矩形"
- List1.AddItem "正方形"
- List1.AddItem "椭圆型"
- List1.AddItem "圆形"
- List1.AddItem "圆角矩形"
- List1.AddItem "圆角方形"
- End Sub
- Private Sub List1_Click()
- Select Case List1.ListIndex
- Case 0
- Shape1.Shape = 0
- Case 1
- Shape1.Shape = 1
- Case 2
- Shape1.Shape = 2
- Case 3
- Shape1.Shape = 3
- Case 4
- Shape1.Shape = 4
- Case 5
- Shape1.Shape = 5
- End Select
- End Sub
- Private Sub Command1_Click()
- CommonDialog1.Flags = &H1&
- CommonDialog1.ShowColor
- Shape1.BackColor = CommonDialog1.Color
- End Sub
18.2 图像框(Image Box)和图片框(Picture Box)
使用线条和形状控件绘制图形,你只能创建一个简单的设计。为了改善接口的外观,你需要把自己的的图像和照片加上去。幸运的是,VB6有两个很强大的图形工具,就是图像框和图片框。
要加载一个图片或图像到图像框或图片框里,您可以点击图片上的属性,在属性窗口中启动一个对话框。它会提示你选择某个图片文件。您也可以在运行时通过使用LoadPictrure()方法加载图片。它的语法是
Image1.Picture= LoadPicture("C:\path name\picture file name") or
picture1.Picture= LoadPicture("C:\path name\picture name")
例如,下面的语句将加载grape.gif的图片插入图像框。
Image1.Picture= LoadPicture("C:\My Folder\VB program\Images\grape.gif")
范例 18.2
在这个例子中,每次你点击如图19.2所示的“change pictures”按钮,你将能够看到三幅图像加载到图片框里。这个程序使用Rnd函数来产生随机整数,然后使用LoadPicture方法使不同的图片加载到图片框。输出如图18.2所示。

源程序
- Dim a, b, c As Integer
- Private Sub Command1_Click ()
- Randomize Timer
- a = 3 + Int(Rnd * 3)
- b = 3 + Int(Rnd * 3)
- c = 3 + Int(Rnd * 3)
- If a = 3 Then
- Image1(0).Picture = LoadPicture("C:\My Folder\VB program\Images\grape.gif")
- End If
- If a = 4 Then
- Image1(0).Picture = LoadPicture("C:\My Folder\VB program\Images\cherry.gif")
- End If
- If a = 5 Then
- Image1(0).Picture = LoadPicture("C:\My Folder\VB program\Images\orange.gif")
- End If
- If b = 3 Then
- Image1(1).Picture = LoadPicture("C:\My Folder\VB program\Images\grape.gif")
- End If
- If b = 4 Then
- Image1(1).Picture = LoadPicture("C:\My Folder\VB program\Images\cherry.gif")
- End If
- If b = 5 Then
- Image1(1).Picture = LoadPicture("C:\My Folder\VB program\Images\orange.gif")
- End If
- If c = 3 Then
- Image1(2).Picture = LoadPicture("C:\My Folder\VB program\Images\grape.gif")
- End If
- If c = 4 Then
- Image1(2).Picture = LoadPicture("C:\My Folder\VB program\Images\cherry.gif")
- End If
- If c = 5 Then
- Image1(2).Picture = LoadPicture("C:\My Folder\VB program\Images\orange.gif")
- End If
- End Sub
18.3 PSet, Line 及 Circle方法
除使用线条和形状控件来绘制图形,你也可以使用用PSet,Line和Circle方法来绘制图形。
(a) Pset 方法
PSet方法是在屏幕上画一个点, 它的语法如下,
Pset (x , y ), color
(x , y )是点的坐标而color是它的颜色。要指定颜色,你可以使用颜色代码或标准VB颜色常数,如VbRed, VbBlue, VbGeen 等
例如, Pset(100,200), VbRed 将在(100,200) 坐标显示一个红点 .
PSet方法也可以用来绘制一条直线。该过程序是
- For x= a to b
- Pset(x,x)
- Next x
上述程序将绘制一条从(a,a)点至(b,b)点的直线
例如,下面的程序将绘制从(0,0)点至(100,100)点的品红线。
- For x= 0 to 100
- Pset(x,x) , vbMagenta
- Next x
(b) Line 方法
虽然 PSet 方法可以用来绘制一条直线,但是会有点慢。这如果你想以更快的速度画出一条直线,最好使用Line方法,。Line方法的语法如下所示。它绘制一条从(x1,y1)点至(x2,y2)点的直线,而颜色常数将决定直线的颜色。
Line (x1, y1)-(x2, y2), color
例如,下面的语法将绘制一条从(0,0)点到(1000,2000)点的红色直线。
Line (0, 0)-(1000, 2000), VbRed
Line方法也可用于绘制一个矩形,其语法如:
Line (x1-y1)-(x2, y2), color, B
矩形的四个角的坐标是(x1-y1), (x2-y1), (x1-y2) and (x2, y2)
Line方法的另一个变化是为矩形填一种颜色,其语法如:
Line (x1, y1)-(x2, y2), color, BF
如果你想在PictureBox中绘制图形时,你可以使用下面的语法
- Picture1.Line (x1, y1)-(x2, y2), color
- Picture1.Line (x1-y1)-(x2, y2), color, B
- Picture1.Line (x1-y1)-(x2, y2), color, BF
- Picture1.Circle (x1, y1), radius, color
(c) Circle 方法
Circle 方法的语法如下
Circle (x1, y1), radius, color
它绘制中心在(X1,Y1)的圆圈,这圆圈具有特定的半径和特定的边框颜色
例如,以下程序
Circle (400, 400), 500, VbRed
绘制中心点在(400, 400)的圆圈 ,其半径为500缇和具有红色的边框。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
