-
VB
中
PaintPicture
图形方法的使用
(1)
[01-12-13 18:17]
出处:
eNet
学院
责任编辑:
zwg
作者:
enet
在
p>
VB
中提供了完善的做图方法
,
可以在窗体或图形框中绘制各种图形
,
其中提供了一个方便的图像处理命令即
:PaintPicture,
此命令的功能与
WINDOWS API
函数
BitBlt
类似
,
但由于不用做
API
函数说明
< br>,
并且有它独特
的功能
,
所以更有它的方便之处
,
使用它可以完成很多图像的特殊处理工作。
一、语法格式
:
PaintPicture
Pic,destX,destY
,destWidth,destHeight,scrX,scrY,scrWidth,scrHeight
p>
其中
Pic:
为图片对象
< br>,
如图形框
Picture
等
;
destX,destY:
目标图像
位置
;
destWidth,destHeight:
目标图像尺寸
;
scrX,scrY:
原图像的裁剪坐标
;
scrWidth,scrHei
ght:
原图像的裁剪尺寸
;
从以上
格式可以看出,此命令的功能就是把一个源图像资源任意复制到
指定的区域
,
并且通过改变参数
destWidth
与
destHeight
值
,
还可以改变复制后
的图像的尺寸
,
实现放大或缩小图像显示
,
甚至可以置这两个属性为负值
,
这<
/p>
样可使目标图像在水平方向翻转,实现特殊效果的图像显示。
二、应用举例
1.
墙纸的制作
所谓的墙纸
,
就是用一个小尺寸的图像连续在一个区域显示
,
形成规则
的重复图像
,
也称为图像的平铺显示
,
利用
“
PaintPicture
命令可以方便的完成
此工作
,
即用一个固定的图像资源多次连续复制到窗口中
;
复制过程中必须
准确计算下一图像的起始位置
;
显示过程中可采取两种方法
,
第一种
方法可
置源图像资源即图形框的
AutoSize
属性为真
,
并且显示过程中按源图像的实
际尺寸复制
,
这是正常的图像平铺显示
;
还有一种
方法就是通过置
AutoSize
属性为假
,
然后改变图形框的尺寸
,
或者直接修改目标图像的尺寸
,
这样
可
实现放大或缩小图像的平铺显示。
具体作方法请见
Command1_Click()
事件中
的代码
。
2.
随机图像显示
随机图像在一定场合具有特殊的魅
力,比如把一个固定的图像连续的在
某一区域中的随机位置显示,这样即可得到一种特殊
的屏幕效果,具体操作
时需要使用
VB
的内部函数
RND,
此函数可产生
0
-
1
之间的随机数
,
通过此
随机数确定显示的图像的位置即
destX
与
destY
参数
,
这样即可使图像在随机
位置显示
,
通过此原理也可以使图像的尺寸等其它参数随机产生
,
以产生其
它效果的随机图像效果。
具体操作方
法请见
Command2_Click()
事件中的代码。
p>
3.
镜头推出效果
镜头推出效果实际上就是图像的放大或缩小显示
,
利用“
PaintPicture
命
令实现此功能
,
只需要改变
destWidth
及
destHeight
< br>参数即可
,
具体操作时需要
注
意保持图像的中心点不变
,
在图像的放大或缩小过程中同时改
变图像的起
始坐标。此命令的图像显示速度不低于
API
函数的
BitBlt
命令
,
图像放大或
缩小过程中基本没有抖动的感觉。具体操作
方法请见
Command3_Click()
事件
中的代码。
4.
拖尾效果的形成
此效果的形成与图像的放大过程基本相似,区别在于无需保持
中心点不
变,而在图像的放大过程中,向一个方向逐渐改变图像的起始位置,并且起
p>
始的图像尺寸置为
0
,这样当图像放大显示
到一定位置时,其后面就留下了
多彩的拖尾效果。具体操作方法请见
Command4_Click()
事件中的代码。
三、演示程序
文后的
程序完整的演示了上述各种图像的特殊处理效果,编程需要在
From1
窗体中安放两个图形框
Picture1
及
Picture2,
还有五个命令
按钮
Command1
-
Comman
d5,
之后把下述代码填入相应的事件中
,
< br>运行程序后通
过按钮
1
-
4
即可演示上述的四种图像处理效果
,
p>
按
退出
按钮则结束程序。
以上方法及程序在
WINDOW
S95
系统、
VB4.0
环境下调试通
过。
’图像平铺显示
Private Sub Command1_Click()
Dim numm As Integer
ze
= True
roww = Int( / )
+
1
coll = Int( / )
+
1
For i = 0 To roww
For j = 0 To coll
icture
e,j
*
,,
numm = numm
+
1
n =
使用图像个数
:
+
Str
$
(numm)
Next j
Next i
e = 0
,i
*
-
-
-
-
-
-
-
-
-
上一篇:英语专四词汇表(完整下载版)
下一篇:剑桥少儿英语KB