用VB6.0制作多媒体影集

发表于:2007-07-14来源:作者:点击数: 标签:
郝卫娟 当好友相聚时,如果你能够拿出亲手制作的一本多媒体影集,相信那优美的背景音乐和让人眼花缭乱的特技效果一定会令他们赞叹不已! 其实,这并不复杂,只要肯花些功夫,相信你一定可以制作出很好的作品!下面让我们用 VB 开始工作吧! 一、创建运行界面
郝卫娟 

  当好友相聚时,如果你能够拿出亲手制作的一本多媒体影集,相信那优美的背景音乐和让人眼花缭乱的特技效果一定会令他们赞叹不已!

  其实,这并不复杂,只要肯花些功夫,相信你一定可以制作出很好的作品!下面让我们用VB开始工作吧!

  一、创建运行界面

  在Form1窗口添加以下主要控件:

  图片框PictureBox(picdest,picsource):用以演示图片素材。

  定时器 (Timer1):控制音乐的循环播放。

  定时器 (Timer2):控制图片的循环播放。

  媒体控制对象Microsoft Multimedia Control(mciwave):用以播放音乐。

  二、编写相片演示程序代码

  常见的特技图像显示方式主要有扫描、移动、百叶窗、马赛克等。在这里,我们只示范二个常用的绘图方式,如果有兴趣,完全可以在此基础上加以改动,得到更多的花样。本文主要是用VB中的paintpicture方法来实现。

  1) 扫描显示方式

  扫描显示是动态绘图技巧的最基本形式,其原理是将源图像一行一行或一列一列地复制到目标区域,配合稍许的时间延迟及数据复制的方向,从屏幕上看就像是向下或向右依次将图形扫描出来。

  由上至下扫描显示的实现方法是:从图像的顶部向下一行一行地从源对象中将位图复制到目标对象中,每复制一行后都加上一定的延时。下面的代码将实现向下扫描显示。(代码中dest为目标对象,source为源对象,dtime为延迟时间。显示图像已装入source。)

  For j = 1 To 100

  dest.PaintPicture source.Picture, 0, 0, picwidth, j ?stepy, 0, 0, picwidth, j ? stepy

  Sleep dtime

  Next j

  根据扫描方向的不同,还有向上、向左、向右、水平平分和垂直平分等多种,其实现代码大致相仿。

  2) 百叶窗显示方式

  百叶窗显示方式,就如关闭百叶窗一样,图像被分成一条一条地显示出来。百页窗显示方式可分为垂直和水平两种形式。

  垂直百叶窗显示的实现技巧是,首先将图像垂直等分为n部分,分n次完成每部分图像的向下扫描显示。但扫描显示时,依照差值扫描进行,即第i次显示i、i+n、...i+j?n、...条扫描线,比如第1次显示1、9、17...条扫描线,第2次显示2、10、18...条扫描线,直到图像完整显示。

  垂直百叶窗显示代码如下:

  scanline = n

  For i = 0 To (scanline - 1)

  For j = i To picwidth Step scanline

  dest.PaintPicture source.Picture, j, 0, 1,

  picheight, j, 0, 1, picheight

  Next j

  Next i

  实现水平百叶窗显示时,原理与上同,循环体代码修改如下即可:

  dest.PaintPicture source.Picture, 0, j, picwidth, 1, 0, j, picwidth, 1

  三、编写背景音乐程序代码

  1)关闭音乐closemusic()

   If Not mciwave.Mode = 524

    Then mciwave.Command =″close″

  2)播放音乐playmusic()

   closemusic

   mciwave.DeviceType = ″WaveAudio″

   mciwave.FileName =App.Path + ″\music\″+ ″

   tears.wav″ ′在此处可以将你喜爱的音乐文件加入

   mciwave.Command=″Open″

   mciwave.Command = ″Play″

  3)音乐播放完后设置重播状态mciwave-Done(NotifyCode As Integer)
   If firstflag Then firstflag = False

   Timer2.Enabled = True

   Timer2.Interval = 1000

  4)定时器定时播放音乐Private Sub Timer2-Timer()

   Timer2.Enabled=False

   Playmusic

   firstflag = True

原文转自:http://www.ltesting.net