您好,欢迎访问三七文档
Delphi程序设计教程2005年8月第9章多媒体编程技术9.1图形、图像对象和组件9.1.1图形对象9.1.2图像对象和组件9.2播放声音和视频9.2.1使用PlaySound播放声音8.2.2使用MediaPlayer组件播放视频小结习题8第9章多媒体编程技术多媒体技术是90年代以来计算机技术的一个重要发展方向,本章将对图形、图像及其他多媒体技术进行剖析,并将介绍使用Delphi7开发多媒体程序的方法和技巧。9.1图形、图像对象和组件Delphi7中定义了许多图形对象用来支持图形的绘制和显示,同时也提供了许多的图像组件来支持各种图像的操作9.1.1图形对象1.画布对象(1)MoveTo(x,y:Integer);(2)LineTo(x,y:Integer);(3)Rectangle(X1,y1,x2,y2:Integer);(4)Ellips(x1,y1,x2,y2:Integer);(5)Textout(X,Y:Integer;consttext:string);2.画笔对象画线的方法(1)Moveto方法,作用是将画笔移到指定位置,使用方法为:moveto(x,y,integer)。(2)lineto方法,作用是画一条到指定位置的直线段,线段起始位置由画布对象的Penpos属性值即画笔的当前位置确定。使用方法为:lineto(x,y:Integer)。(3)画折线的方法,使用方法为Polyline(points:arrayofTPoint)。2.画矩形的方法3.画圆或椭圆的方法4.画弧形曲线的方法5.圆角矩形3.画刷对象画布的画刷(Brush)属性决定图形内部区域的填充方式。1.画刷的属性(1)颜色属性(Color)。Canvas.Brash.Color:=〈属性值〉(2)风格属性(Style)。(3)位图属性。2.作图区域作图区域Rect是Trect属性的对象,同时也是一个函数。Rect对象的作用就是定义一个矩形区域对象。Rect对象用两个Tpoint类型或用四个整形变量指明区域范围。下面举例说明各个对象的应用。【例9-1】综合利用画笔,画刷以及画布对象的例子。要求可以绘制至少三种图形,并可以改变画笔,画刷的颜色以及风格。(1)界面设计(2)属性设置procedureTForm1.FormShow(Sender:TObject);begincomb_graph.Clear;//显示绘制图形组合框清空comb_graph.Items.Add('矩形');//添加项目comb_graph.Items.Add(‘椭圆’);comb_graph.Items.Add('多边形');comb_pencolor.clear;comb_pencolor.Items.Add(‘clred’);//画笔颜色选择组合框添加项目comb_pencolor.Items.Add('clbalck');comb_pencolor.Items.Add('clgreen');comb_pencolor.Items.Add('clblue');comb_pencolor.Items.Add('clyellow');comb_brushcolor.clear;comb_brushcolor.Items.Add('clred');//画刷颜色选择组合框添加项目comb_brushcolor.Items.Add('clbalck');comb_brushcolor.Items.Add('clgreen');comb_brushcolor.Items.Add('clblue');comb_brushcolor.Items.Add('clyellow');comb_penstyle.clear;comb_penstyle.Items.Add('pssolid');//画笔风格选择组合框添加项目comb_penstyle.Items.Add('psdash');comb_penstyle.Items.Add('psdot');comb_penstyle.Items.Add('psdashdot');comb_brushstyle.clear;comb_brushstyle.Items.Add('bssolid');//画刷风格选择组合框添加项目comb_brushstyle.Items.Add('bsClear');comb_brushstyle.Items.Add('bshorizontal');comb_brushstyle.Items.Add('bsvertical');end;procedureTForm1.Button1Click(Sender:TObject);varpp:array[1..4]oftpoint;//定义存储绘图顶点的数组。pc,bc:tcolor;//画笔和画刷的颜色变量beginpp[1].X:=10;pp[1].Y:=10;pp[2].X:=100;pp[2].Y:=100;pp[3].X:=140;pp[3].Y:=180;pp[4].X:=160;pp[4].Y:=50;case(comb_pencolor.ItemIndex)of//取出选择的画笔颜色常量值0:pc:=clred;1:pc:=clblack;2:pc:=clgreen;3:pc:=clblue;4:pc:=clyellow;end;case(comb_brushcolor.ItemIndex)of//取出选择的画刷颜色常量值0:bc:=clred;1:bc:=clblack;2:bc:=clgreen;3:bc:=clblue;4:bc:=clyellow;end;paintbox1.Canvas.Pen.Color:=pc;//设置画笔颜色paintbox1.Canvas.Pen.style:=tpenstyle(comb_penstyle.ItemIndex);//设置画笔风格paintbox1.Canvas.brush.Color:=bc;//设置画刷颜色paintbox1.Canvas.brush.style:=tbrushstyle(comb_brushstyle.ItemIndex);//设置画刷风格ifcomb_graph.Text='矩形'thenpaintbox1.Canvas.Rectangle(pp[1].x,pp[1].y,pp[2].x,pp[2].y)elseifcomb_graph.Text='椭圆'thenpaintbox1.Canvas.Ellipse(pp[1].x,pp[1].y,pp[3].x,pp[3].y)elseifcomb_graph.Text='多边形'thenpaintbox1.Canvas.Polygon(pp);end;procedureTForm1.Button2Click(Sender:TObject);beginpaintbox1.Repaint;//通过重画擦除图形end;9.1.2图像对象和组件Delphi中支持使用的图像格式有JPEG,BMP,ICO,EMF和WMF格式的文件,其中最为常用的是JPEG和BMP格式。Delphi提供了一些图像对象和组件来支持这些格式的图像,下面介绍一些主要对象。1.TGraphic对象TGraphic对象是TBitmap,TIcon,Tmetafile对象的基类。如果知道图像的具体类型(如位图,图标元文件),则应将图像贮存在相应类型的对象中(如TBitmap,TIcon,Tmetafile),否则应该使用可贮存任何图像类型的TPicture对象。2.TPicture对象TPicture对象可以保存位图、图标或元文件。Graphic属性中包括图像的类型;图像的高度和宽度分别定义在Height,Width属性中;调用LoadFromFile方法,可以从文件中装载一幅图像。3.TBitmapObject位图对象位图对象包含一个位图图像,位图对象也有画布属性。4.TImage部件TImage部件用以在窗体中显示图像,它的Picture属性保存着要显示的图像,这是一个TPicture对象。【例9-2】TImage组件的使用。当在文件列表框中选择文件时,将显示在左边的Timage部件中。可以过滤文件的类型和选择不同的驱动器。(1)界面设计(2)属性设置(3)程序设计procedureTform1.FileListBox1Click(Sender:TObject);varFileExt:string[4];//存储文件扩展名beginFileExt:=UpperCase(ExtractFileExt(FileListBox1.Filename));if(FileExt='.BMP')or(FileExt='.ICO')or(FileExt='.WMF')thenbeginImage1.Picture.LoadFromFile(FileListBox1.Filename);Label1.Caption:=ExtractFilename(FileListBox1.Filename);if(FileExt='.BMP')thenbeginLabel1.Caption:=Label1.Caption+Format('(%dx%d)',[Image1.Picture.Height,Image1.Picture.Width]);end;end;end;9.2播放声音和视频声音和视频是多媒体技术中另外一个比较重要的内容。本节将介绍如何使用WindowsAPI函数PlaySound播放声音和使用ciSendString来获取CD的信息并控制CD的播放,以及使用MediaPlayer组件来播放视频。9.2使用PlaySound播放声音PlaySound是WindowsAPI函数。在Delphi中可以方便地调用该函数来播放指定文件名、资源中的或与系统时间相关联的声音。其函数原形如下:Boolplaysound(LPCSTRpszSoud,HMODULEhmod,DWORDfdwSound);打开一个要播放文件的步骤:(1)打开任何一个文本编辑软件,在文件中输入DINGWAVEc:\windows\media\ding.wav,并以文件名Wave.rc保存文件到应用程序文件夹中。(2)使用Delphi中的Brcc32.exe,该文件位于安装delphi的目录下的bin文件夹中。(3)使用该资源文件需要使用以下代码。{$R*.dfm}{$Rwave.res}procedureTForm1.Button1Click(Sender:TObject);beginplaysound(‘ding’,hinstace,snd_resource);end;9.2.2使用MediaPlayer组件播放视频Delphi中提供了一个叫做Mediaplayer的组件,它封装了WindowsMediaControlinterface(MCI)的大部分功能,这使得我们不必编写大量的Windows底层函数去和WindowsMCI接口打交道而直接就可以操纵视频文件。1.属性(1)DeviceType属性(2)Filename属性(3)Visiblebuttons属性(4)AutoOpen属性(5)start,startPos属性。2.方法常用方法有OpenPlayRewind等。3.事件常用事件有OnclickOnNotify和OnPostClick。【例9-3】设计视频播放的应用程序。(1)界面设计(2)属性设置(3)程序设计procedureTForm1.BitBtn1Click(Sender:TObject);beginifOpenDialog1.Executethenbeginedit1.Text:=opendialog1.FileName;//打开文件mediaplayer1.FileName:=opendialog1.FileName;mediaplayer1.AutoOpen:=true;//设
本文标题:第9章 多媒体编程
链接地址:https://www.777doc.com/doc-1483510 .html