APP下载

Visual Basic可视化编程中图形处理方法

2009-03-14姚茂群

新媒体研究 2009年4期
关键词:像素

姚茂群

[摘要]阐明Visual Basic可视化编程方法进行图形程序设计的通用方法,以具体实例说明了Visual Basic图形处理过程中坐标设置、像素点、图形、颜色值的定义、读取、处理及各种图形艺术化处理的技术和方法,并给出处理图形的应用程序。

[关键词]VB 图形方法 像素 过程代码

中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0220069-01

一、引言

Visual Basic作为功能强大的Windows程序开发工具软件,由于它具有先进的设计思想、快速易掌握的使用方法及图形处理技术手段灵活多样等特点,受到了软件开发人员的关注和青睐,因此成为图形处理应用程序开发的理想工具。VB提供了与图形有关的控件,如图形框PictureBox、图像框Image、直线Line与形状Shape,还提供了完善的做图方法,可以在窗体或图形框中绘制各种图形,如Line方法、Circle方法、Paintpicture方法等。

二、图形方法

图形方法是一种在程序运行过程中绘制图形的手段,它可以经过计算,精确地设计图形的位置与外形,并可以按照不同的算法,生成各种复杂的图形。下面列举VB中简单图形方法及图形处理所需程序代码。

(一)直线和矩形的绘制——Line方法

Line方法具有在object指定对象上画直线和矩形两种功能。

命令格式:object. Line [STEP][(X1,Y1)]-[STEP](X2,Y2).[颜色],[B][F]

其中:objet可以是窗体或图形框;(X1,Y1),(X2,Y2)分别表示线条的起点和终点坐标。颜色表示画线时用的RGB颜色;B表示画直线还是画矩形,F规定矩形以及边框的颜色填充

(二)图象处理——PaintPicture方法

PaintPicture方法可以将图像框、图形框或窗体中的一个矩形区域的像素,复制到图像框、窗体对象中,并且源像素与目标像素可以有多种组合方式,形成各种有趣的显示效果, 使用它可以完成很多图像的特殊处理工作。

命令格式:object PaintPicture Pic,dx,dy,dw,dh,sx,sy,sw,sh,[,

操作码]

其中Pic:为图片对象,如图形框、图像框或窗体等;dx,dy:目标图像左上角坐标位置;

dw,dh:目标图像的宽和高尺寸;sx,sy:原图像的左上角坐标;sw,sh:原图像的宽和高尺寸;

操作码指定源像素与目标像素的组合方式,共有256种不同的方式。

从以上格式可以看出,此命令可以通过改变参数dw与dh值,改变复制后的图像的尺寸,实现放大或缩小图像显示,甚至可以置这两个属性为负值,这样可使目标图像在水平方向、垂直方向翻转,实现特殊效果的图像显示。

三、图形方法的使用拓展

(一)Line方法拓展——绘制一个圆的追逐线

基本思想是:假定平面上两点M1(X1,Y1)和M2(X2,Y2)。M2沿着某条曲线移动,当M2移动后画出M1到M2的直线,然后M1沿着这根直线移动直线长度的一个百分比。新坐标位置由:X1=X1+N*(X2-X1),Y1=Y1+N*(Y2-Y1)得到。如此进行下去得到的图形便是追逐线图形。

窗体事件过程代码:

Private Sub Form_Click()

const PI=3.14159

dim x1,y1,x2,y2,M,N,I as single

scale(-1,1)-(1,-1)

M=1:x1=-1:y1=1:N=0.05

for I=0 to 2*pI step 0.05

x2=M*cos(I):y2=M*sin(I)

line(x1,y1)-(x2,y2):x1=x1+N*(x2-x1):y1=y1+N*(y2-y1)

next i

end sub

(二)PaintPicture方法拓展——图形像素逆转、图像平铺、水平翻转显示

首先在From1窗体中创建图形框Picture1及图像框image1,命令按钮,并在各个命令按钮的Click()事件中编写过程代码,运行程序后通过不同按钮显示不同的图像处理效果,按“结束”按钮则结束程序运行。各个命令按钮的Click()事件过程代码如下:

1.图形像素逆转显示:

Private Sub Command1_Click()

Dim dx!, DY!, DW!, DH!, SX!, SY!, SW!, SH!

SX = 0: SY = 0 : SW = Image1.Width: SH = Image1.Height

dx = 0: DY = 0:DW = Image1.Width: DH = Image1.Height

Picture1.PaintPicture Image1.Picture, dx, DY, DW, DH, SX, SY, SW, SH, vbnotSrcCopy

End Sub

2.图形复制平铺显示:

Private Sub Command2_Click()

Dim m, n As Integer

r=Int(Picture1.Width / Image1.Width): c= Int(Picture1.Height / Image1.Height)

For m = 0 To r + 2

For n = 0 To c + 2

Picture1.PaintPicture Image1.Picture, n * Image1.Width, m * Image1.Height, Image1.Width, Image1.Height

Next

Next

End Sub

3.图形水平翻转显示:

Private Sub Command3_Click()

Dim dx!, DY!, DW!, DH!, SX!, SY!, SW!, SH!

SX = Image1.Width: SW = -Image1.WidtH : SH = Image1.Height

dx = 0: DY = 0 : DW = Image1.Width:DH = Image1.Height

Picture1.PaintPicture Image1.Picture, dx, DY, DW, DH, SX, SY, SW, SH, vbSrcCopy

End Sub

结束按钮

Private Sub Command5_Click()

End

End Sub

参考文献:

[1]朱新华,Visual Basic程序设计教程,广西师范大学出版社.

[2]张云苑,VB图形处理技术,天津职业技术师范学院学报.

[3]潘小轰,中文Visual Basic 程序设计基础教程,冶金工业出版社.

猜你喜欢

像素
摄影小词典
“像素”仙人掌
人眼如何解读像素
高像素不是全部
神回复
您的像素,饱和吗?[上]