您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > 第12章 Visual Basic多媒体程序设计
第12章VisualBasic多媒体程序设计第12章VisualBasic多媒体程序设计本章重点多媒体项目的开发方法文本软件开发技术图形软件开发技术图像软件开发技术数字音频软件开发技术数字视频软件开发技术动画软件开发技术第12章VisualBasic多媒体程序设计12.1基本概念12.2VB图形处理技术12.3VB图像处理技术12.4VB音频处理技术12.5VB视频处理技术12.6VB动画处理技术12.7小结12.1基本概念VisualBasic(简称VB)是Microsoft公司推出的基于Windows平台的程序开发工具,其程序设计风格与传统设计方法不同,它采用面向对象和事件的程序设计方法,是一种采用事件驱动编写机制的语言。VB专业版中提供了MCI(MediaControlInterface)的控件。利用VB,可以编程处理文本、图形、图像、音频、视频、动画等多媒体数据,以设计或构造适合不同需求的多媒体应用系统。在多媒体程序设计方面,VB不但自身提供了控制对象及多媒体控件,还提供了对众多第三方多媒体控件的支持及API函数的调用。12.1基本概念VB涉及三个重要概念:(1)窗口。窗口是一种有边界的矩形区域,例如,资源管理器窗口、Word的文档窗口、对话框窗口、按钮、图标、菜单条等。(2)事件。事件是通过鼠标、按键的操作、程序的控制或其他窗口所产生的操作或行为。(3)消息。发生事件时就引发一条消息并发送到操作系统。VB采用事件驱动模型。在事件驱动模型中,程序代码不是按照预定的顺序执行,而是在响应不同的事件时执行不同的代码片断。Windows操作系统通过给每一个窗口提供一个唯一的标识符(窗口句柄Hwnd)来管理所有的窗口。操作系统连续地监视每一个窗口的活动或事件信号。当发生事件时,将引发一条消息,操作系统处理该消息并广播给其他窗口。最后,每一个窗口根据自身处理该条消息的指令而采取适当的操作。12.2VB图形处理技术12.2.1VB坐标系统及图形格式12.2.2PaintPicture方法和BitBltAPI函数12.2.3绘图方法程序实例12.2.1VB坐标系统及图形格式在VB中,坐标系统是一个二维网格,可定义屏幕上、窗体中或其他容器中的位置。使用窗体中的坐标(x,y),可定义网格上的位置。其中x值是沿x轴的位置,最左端的值是0;y值是沿y轴的位置,最上端的值是0。VB可以支持的图形格式有位图(.bmp)文件、设备独立位图(.dib)文件、图标(.ico)文件、光标(.cur)文件、元(.wmf)文件、增强的元文件(.emf)、GIF(.gif)文件以及JPEG(.jpg)文件.12.2.2PaintPicture方法和BitBltAPI函数PaintPicture的基本功能是图像块传输。它能快速地将两幅位图进行合并;能将位图的全部或某一部分快速剪切并粘贴到其他地方;能将位图自动延伸或压缩以适应新的环境;能在屏幕上不同位置之间、屏幕与内存之间传递位图;它采用32位三元光栅操作代码(RasterOp),在源位图、选定的子位图和目标位图之间进行颜色组合,生成目标位图中的最终颜色;它将13个常用RasterOp操作以内部常量形式给出,不需任何声明。12.2.2PaintPicture方法和BitBltAPI函数PaintPicture方法作用:在Form、PictureBox或Printer上绘制图形文件(.bmp、.wmf、.emf、.cur、.ico或.dib)的内容。语法:Object.PaintPicturepicture,x1,y1,widthl,height1,x2,y2,width2,height2,opcode。Object是可选项。其值可以为窗体、PictureBox控件或Printer。Picture为必选项,指定要绘制到Object上的图形源。x1,y1必选项,均为单精度值,指定在Object上绘制Picture的目标坐标。Width1可选项,单精度值,指示Picture的目标宽度。Height1可选项,单精度值,指示Picture的目标高度。x2,y2可选项,均为单精度值,指示Picture内剪贴区的坐标(x-轴和y-轴)。Width2可选项,单精度值,指示Picture内剪贴区的源宽度。Height2可选项,单精度值,指示Picture内剪贴区的源高度。opcode可选项,是长型值或仅由位图使用的代码,该参数与BitBlt中dwRop参数含义相同。表示源位图与目标位图的组合关系,用来定义在将Picture绘制到Object上时对Picture执行的位操作。12.2.2PaintPicture方法和BitBltAPI函数BitBltAPI函数作用:与PaintPicture方法相同。函数声明:DeclareFunctionBitBltLibgdi32AliasBitBlt(ByValhDestDCAsLong,ByValxAsLong,ByValyAsLong,ByValnW记thAsLong,ByValnHeightAsLong,ByValhSrcDCAsLong,ByValxSrcAsLong,ByValySrcAsLong,ByValdwRopAsLong)AsLong12.2.2PaintPicture方法和BitBltAPI函数参数说明:hDestDC:目标设备环境x:目标左上角坐标y:目标顶端坐标nWidth:目标宽nHeight:目标高hSrcDC:源设备环境xSrc:源左上角坐标ySrc:源顶端坐标dwRop:位处理操作,与PaintPicture方法相同。12.2.3绘图方法程序实例下面介绍的“真彩色画板”可以在一个画图区域内,以任意的颜色,绘制任何曲线。程序中用Line绘图方法与鼠标的MouseDown及MouseMove事件,并使用RGB(Red,Green,Blue)函数选取画笔颜色,实现具体的绘图操作。(1)各对象属性设置如下:BeginVB.FormForm1BackColor=&H80000001&Caption=简单的真彩色画板ClientHeight=7425ClientLeft=1665ClientTop=1950ClientWidth=996012.2.3绘图方法程序实例BeginVB.PictureBoxPicture2Appearance=0'FlatBackColor=&H80000005&ForeColor=&H80000008&Height=1785Left=8130Picture=Form1.frx:0000ScaleHeight=1755ScaleWidth=1755TabIndex=15Top=300Width=1785End12.2.3绘图方法程序实例BeginVB.HScrollBarHScroll3Height=375Left=8250Max=255TabIndex=7Top=5820Width=1575EndBeginVB.HScrollBarHScroll2Height=375Left=8250Max=255TabIndex=6Top=5100Width=1575End12.2.3绘图方法程序实例BeginVB.HScrollBarHScroll1Height=375Left=8250Max=255TabIndex=5Top=4380Width=1575EndBeginVB.CommandButtonCommand4Caption=退出BeginPropertyFontName=宋体Size=1212.2.3绘图方法程序实例Charset=134Weight=400Underline=0'FalseItalic=0'FalseStrikethrough=0'FalseEndPropertyHeight=495Left=6210TabIndex=4Top=6780Width=1455EndBeginVB.CommandButtonCommand3Caption=清屏BeginPropertyFontName=宋体Size=12Charset=134Weight=400Underline=0'FalseItalic=0'FalseStrikethrough=0'FalseEndProperty12.2.3绘图方法程序实例12.2.3绘图方法程序实例Charset=134Weight=400Underline=0'FalseItalic=0'FalseStrikethrough=0'FalseEndPropertyHeight=495Left=2130TabIndex=2Top=6780Width=1455End12.2.3绘图方法程序实例BeginVB.PictureBoxPicture1AutoRedraw=-1'TrueBackColor=&H80000009&Height=6015Left=330ScaleHeight=5955ScaleWidth=7035TabIndex=0Top=300Width=7095End12.2.3绘图方法程序实例Size=12Chatset=134Weight=400Underline=0'FalseItalic=0'FalseStrikethrough=0'FalseEndPropertyHeight=495Left=90TabIndex=1Top=6780Width=1455End12.2.3绘图方法程序实例程序代码如下'在窗体Forml的声明段声明以下变量DimpaintnowAsBooleanDimstartXAsSingle,startYAsSingleDimredAsInteger,greenAsInteger,blueAsIntegerPrivateSubCommand1_Click()'变量file_name用于保存用户输入的要打开的文件的文件名Dimfile_nameAsStringfile_name=InputBox(请输入路径\文件名:,打开文件)'如果文件不存在,则显示”文件未找到”的对话框,否则将指定的图形文件载入赋给'图片框的Picture属性(即在图片框中显示打开的图形文件),并设置”保存”命令按钮'获得焦点12.3VB图像处理技术12.3.1在图片上平滑移动文字12.3.2图像的滚动显示和缩放12.3.3屏幕图像的捕捉12.3.1在图片上平滑移动文字在很多电影及游戏的结尾,我们可以看到文本在图片上平滑地卷到屏幕的上方,在VB中,可以使用以下方法实现此“特技”:新建工程文件,并创建Forml。在Forml上放置PictureBox控件Picture1,选定背景图片。另外,放置一个Timer控件Timer1,设置Enabled属性为True,设置Interval为100(Interval决定文本移动速度)。单击选择Picture1,在PictureBox的底部放置Label控件Label1,并设置Label1的BackStyle属性为0(透明——即控件后的背景色和任何图片都是可见的),设置Caption为待移动的字符串12.3.2图像的滚动显示和缩放12.3.2图像的滚动显示和缩放12.3.3屏幕图像的捕捉12.3.3屏幕图像的捕捉12.3.3屏幕图像的捕捉12.4VB音频处理技术12.4.1利用Beep语句使扬声器发声12.4.2利用OLE2.0控件播放音频12.4.3利用MCI32控件播放音频及MIDI音乐12.4.4调用API函数播放音频12.4.5MP3的播放方法12.4.1利用Beep语句使扬声器发声12.4.1利用Beep语句使扬声器发声12.4.2利用OLE2.0控件播放音频12.4.3利用MCI32控件播放音频及MIDI音乐12.4.3利用MCI32控件播放音频及MIDI音乐12.4.4调用API函数播放音频12.4.4调用API函数播放音频1
本文标题:第12章 Visual Basic多媒体程序设计
链接地址:https://www.777doc.com/doc-1482781 .html