版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第12章 图形图像与多媒体技术,本章要点: 多媒体的基本概念 图形图像编程 多媒体应用程序,12.1 循序渐进学理论,12.1.1 多媒体的概念 媒体是指信息的载体,主要分成两个方面:存储信息的媒体和表现信息的媒体。 所谓多媒体是指多种媒体的有机结合,是通过计算机的多媒体技术来实现的。“多媒体技术”在某种程度上已经成为声、文、图、动画、影像等媒体信息在计算机系统中综合应用的代名词。 多媒体技术具有下面的两个重要特点: (1)多种媒体的综合性 (2)交互性,各类主要媒体文件及扩展名如下: 图像文件:位图文件(.BMP)、JPEG文件(.JPG); 声音文件:声波文件(.WAV)、MIDI音乐文件
2、(.MID); 视频文件:AVI文件(.AVI)、MPEG文件(.MPG)。 在Delphi 7.0中,图像文件的显示是通过TImage等组件来实现的,另外在Delphi 7.0中还提供了一个TMediaPlayer组件,利用该组件不但能够对波形声音、MID音乐、视频等媒体文件进行播放和控制,而且能够控制多种多媒体设备。,12.1.2 图形图像与多媒体技术,Delphi为用户提供了多种简洁有效的与图形、图像有关的控件。不仅可以直接插入图形、图像,也可以使用控件来创建图形、图像,并控制其位置和外观。 1 几何图形控件Shape 2 图象控件Image 3 画布(Canvas)对象 4 Paint
3、Box画板控件,1 几何图形控件Shape,几何图形控件位于工具栏上的additional页中,用于窗体上绘制一些常见的几何图形,如矩形、圆、椭圆、圆角矩形等。下面简单介绍其几个基本的属性。 (1).Shape属性 :设置需要绘制的几何图形种类 (2).Brush属性:该属性设置图形填充的模式和颜色 (3).Pen属性 :画笔属性,(1)Shape属性,(2)Brush属性,Color属性 用来设置填充色,取值及含义与Pen的Color属性一样。 Style属性 该属性用来设置填充样式。图12-1是Brush颜色值为clBlack时的Style属性值及其代表的样式。,图12-1 Brush对象
4、的Style属性值及其代表的填充样式,(3)Pen属性 Color属性 使用Delphi提供的系统颜色常量 如语句: Pen.Color:=clBlue clBlack:黑色, clMaroon:暗红,clGreen:绿色 clOlive:橄榄绿,clNavy:深蓝,clPurple:紫色, clTeal:深青,clGray:灰色,clSilver:浅灰, clRed:红色,clLime:浅绿,clYellow:黄色, clBlue:蓝色,clFuchsia:紫红,clAqua:青绿, 使用RGB函数 RGB函数的一般格式为:RGB(red, green, blue)返回代表 RGB 颜色值的
5、整数。 RGB 函数的语法有以下参数:red 必选。 0 到 255 间的整数,代表红色成分。 green 必选。0 到 255 间的整数,代表绿色成分。 blue 必选。 0 到 255 间的整数,代表蓝色成分。,常见的RGB函数颜色效果。, 直接以数字表示颜色 十六进制编号 从000000到FFFFFF 从黑到白 红色: 00FF0000 兰色: 0000000F 粉色: 00FF00FF 黑色: 00000000 白色: 00FFFFFF 绿色: 0000FF00 黄色: 00FFFF00 淡蓝: 0000FFFF 淡绿: 0000FF00 深红: 00CC0000 紫色: 00CC00
6、FF 褐色: 00CC9900 深黄: 00FFCC00 草绿: 0099CC00 棕绿: 00999900 例如有如下语句: Pen.Color:=$00FF00FF;该语句与下面的语句作用是相同的: Pen.Color:=RGB(255,0,255);,Width属性 该属性用于设置线条的粗细宽度,单位是像素,其最小值为1。下面的代码会将线条的粗细宽度设置为10个像素。 Form1.Canvas.Pen.Width:= 10; Mode属性 绘点的色和目标点的色求与/或/非等逻辑方式,以组合产生各种画效果, Pen.Mode := AMode; /使上次绘制的图形颜色变成了屏幕颜色,从而达
7、到“橡皮擦”的效果。 【例12-1】绘制图形,如程序所示。,界面如图,代码分析 procedure TForm1.Button1Click(Sender: TObject); begin Shape1.Shape := stCircle; end; procedure TForm1.Button2Click(Sender: TObject); begin Shape1.Shape := stSquare; end; procedure TForm1.Button3Click(Sender: TObject); begin Shape1.Shape := stRectangle; end; pr
8、ocedure TForm1.Button4Click(Sender: TObject); begin Shape1.Shape := stRoundRect; end;,procedure TForm1.Button5Click(Sender: TObject); begin Shape1.Shape := stEllipse; end; procedure TForm1.Button6Click(Sender: TObject); begin Shape1.Shape := stRoundSquare; end; procedure TForm1.Button7Click(Sender:
9、TObject); begin ColorDialog1.Execute; Shape1.Brush.Color := ColorDialog1.Color; end; procedure TForm1.BitBtn1Click(Sender: TObject); begin close; end;,图象控件Timage是一种容器控件,它在应用程序窗体上提供一个矩形区域,用于显示各种位图、图标、图元文件。 【例12-2】在窗体中显示图形,如程序所示。,2 图象控件Image,界面设计,代码分析 procedure TForm1.FormCreate(Sender: TObject); begi
10、n Image1.picture.loadFromfile(c:program filescommonfil esborland sharedimagessplash256colorchemical.bmp); end; procedure TForm1.Button1Click(Sender: TObject); Var filename:string; begin if openpicturedialog1.Execute then begin filename:=openpicturedialog1.FileName; image1.Picture.LoadFromFile(filena
11、me); end; end;,画布(Canvas)对象,用于应用程序的图形输入。在Delphi中绘图时,是将图形画在窗体、图像控件Image控件、画框(PaintBox)中的画布Canvas上。画布也有自己的属性,他本身也是一个对象(控件),但一般不能单独使用。,3 画布(Canvas)对象,1TCanvas对象的属性 (1)Pen属性 Color属性 使用Delphi提供的系统颜色常量 使用RGB函数 直接以数字表示颜色 Width属性 该属性用于设置线条的粗细宽度,单位是像素,其最小值为1。 Mode属性 其作用是画线时把画笔的颜色与屏幕的颜色异或。,(2)Brush属性,Color属性
12、用来设置填充色,取值及含义与Pen的Color属性一样。 Style属性 该属性用来设置填充样式。图12-1是Brush颜色值为clBlack时的Style属性值及其代表的样式。,(3)Pixels属性,该属性是一个二维数组属性,其声明如下: property PixelsX,Y:Integer:TColor; pixels属性就是用来获得画布上指定一个点坐标的像素色彩,并可设置像素色彩。 画点函数。 如将坐标(100,100)上的点设置为红色:pixels100,100 := clred; (4)Font属性 该属性用来设置在画布对象上输出文字的字体格式,它也有自己的子属性,通过设置它的子属
13、性,可以决定在画布上输出文字的字体、大小、颜色以及字体风格等。,2TCanvas对象的方法,(1)MoveTo方法 格式:procedure MoveTo(X,Y Integer); 作用是将画笔移到指定位置, (2)LineTo方法 格式:procedure LineTo(X,Y Integer); 作用是画一条到指定位置的直线段,线段起始位置由画布对象的Penpos属性值即画笔的当前位置确定。 (3)Arc方法 格式:procedure Arc(Xl,Y1,X2,Y2,X3,Y3,X4,Y4:Integer); 画弧形曲线。 (4)Ellipse方法 格式:procedure Ellips
14、e(Xl,Y1,X2,Y2Integer); Ellipse方法用于画圆或椭圆。,(5)Polyline方法 格式 : Polyline(points:array of TPoint)。 Polyline方法用于画折线的方法 (6)Rectangle方法 格式:procedure Rectangle(X1,Y1,X2,Y2:Integer); Rectangle方法用于画矩形。,像素操作 像素是组成图形最基本的单位。画布上的每一个点都有一个对应的像素,用来代表此点的颜色。利用画布的Pixels属性,可绘制数学函数曲线。 画笔操作 例 12.3 使用Canvas属性基本作图方法,画出图形,界面设
15、计,代码分析 procedure TForm1.FormPaint(Sender: TObject); Begin canvas.pen.color:=clred; with canvas do begin moveto(10,10); lineto(100,100);/ 画直线 pen.color:=clblue; rectangle(110,10,200,100); /画矩形 pen.color:=clolive; ellipse(210,10,400,100); /在矩形中画椭圆 pen.color:=clteal; roundrect(410,10,500,100,50,50); /画
16、圆角矩形 pen.color:=clblack; arc(120,200,320,300,120,200,320,200); /画弧形曲线 pen.color:=clgreen; polyline(Point(420,200),Point(380,300),Point(480,240),Point(360,240),Point(460,300),Point(420,200); /画五角星 end;,1 TAnimate组件的使用,1常用属性 (1)Active属性 该属性用来设置是否播放动画。 (2)AutoSize属性 该属性用来决定TAnimate组件的大小是否随着播放的动画图像的大小而改
17、变。,TAnimate组件,12.2多媒体程序设计,(3)Center属性 该属性用来设置播放的动画图像是否在TAnimate 组件的中央。 (4)FileName属性 该属性用来指明要播放的AVI的文件名(包括文件所在的路径)。 (5)CommonAVI属性 该属性用来设定播放Windows自带的哪种AVI动画。 (6)StartFrame属性 该属性设置从动了的哪一帧开始播放 。,(7)StopFrame属性 该属性用来设置播放到动画的哪一帧结束 。 (8)FrameCount属性 该属性表示播放的AVI动画文件的总帧数,为只读属性。 (9)Repetitions属性 该属性设置重复播放A
18、vi文件的次数。 (10)Transparent属性 该属性用来设置播放背景是否为透明的。,2常用方法,(1)Play 方法 格式:procedure Play(FromFrame, ToFrame: Word; Count: integer); (2)Seek方法 格式:procedure Seek(Frame: SmallInt); (3)Reset 方法 格式:procedure Reset; (4)Stop方法 格式:procedure Stop;,【例12-4】 利用TAnimate组件播放Windows的预设动画。,代码分析 procedure TForm1.FormCreate(
19、Sender: TObject); begin button2.enabled:=false;button3.enabled:=false; end; procedure TForm1.Button1Click(Sender: TObject); begin with tanimate.create(form1) do begin parent:=form1; filename:=C:program filesborlanddelphi7demos coolstufcool.avi; active:=true; end; animate1.active:=true;button2.enable
20、d:=true; button3.enabled:=true; end;,procedure TForm1.Button2Click(Sender: TObject); begin animate1.seek(10); end; procedure TForm1.Button3Click(Sender: TObject); begin animate1.stop; end; end.,2 TMediaPlayer组件的使用,1组件概述 利用TMediaPlayer组件可以对多媒体文件和多媒体设备进行控制,TMediaPlayer组件由一系列的按钮组成,如上图所示。,2常用属性,(1)AutoE
21、nable属性 该属性是一个Boolean型属性,若其值为True(默认值)时,则媒体播放器可以根据Mode属性指定的当前模式和DeviceType属性指定的当前设备类型来确定哪些按钮可以使用。 (2)AutoOpen属性 该属性用来确定当应用程序运行时,媒体播放器是否自动打开媒体设备。 (3)AutoRewind属性 该属性为Boolean型属性,用来设置在多媒体文件播放完毕以后,是否自动返回到起点。,(4)DeviceType属性 该属性用来设置要打开的多媒体设备的类型。 (5)Display属性 该属性用来指定一个窗口作为多媒体文件的输出屏幕。 (6)EnabledButtons属性 设
22、置多媒体播放器组件中哪些按钮是有效的,哪些是无效的。 (7)FileName属性 该属性用于为多媒体播放设备指定一个待播放的多媒体文件名。,(8)Visible属性 该属性用于决定TMediaPlayer组件是否可见,默认值是True,表示是可见的。 (9)VisibleButtons属性 该属性用来决定TMediaPlayer组件中的各个按钮是否可见,可设置每个按钮的可见状态。 (10)Mode属性 该属性用来返回多媒体设备的当前状态。 (11)Notify属性 该属性用来决定当一个多媒体控制方法(比如Open、Play等)完成以后,是否响应下一个多媒体方法。,(12)NotifyValue
23、属性 该属性用来表示上一个控制命令的执行情况。(13)TimeFormat属性 该属性用来设置描述时间的格式,该属性是一个运行属性。 (14)Tracks属性 该属性用来表示CD音乐总轨数。 (15)TrackLength属性 该属性用来表示音乐轨的长度。,(16)TrackPosition属性 该属性用来表示当前音乐轨的播放位置。 (17)Length属性 该属性用来表示播放媒体的总长度。长整型。(18)Position属性 该属性用来表示媒体当前的播放位置。长整型。 (19)Wait属性 该属性为Boolean类型,用于决定是否当媒体控制方法执行结束后,才将控制权交给应用程序。 (20)F
24、rames属性 该属性用来确定调用Back或Step方法时,前进或后退的帧数。,3常用方法,TMediaPlayer组件的常用方法及其作用如表,4常用事件,TMediaPlayer组件能够响应OnClick、OnPostClick、OnEnter、OnExit、OnNotify等多种事件,下面介绍OnNotify事件的使用。 当Notify属性设置为True时,每当多媒体控制方法(如前面所讲的Open,Save,Back,Close,Eject,Pause等方法)完成以后,就会产生OnNotify事件。,【例12-5】 编写一个波形音频文件的播放程序。程序的设计如图13-5所示。程序运行时,单
25、击【打开】按钮将出现一个打开对话框,供用户选择一个波形音频文件。选择文件名后按【播放】按钮将播放该波形音频文件。 界面如图:,代码分析: procedure TForm1.BitBtn1Click(Sender: TObject); begin If OpenDialog1.Execute then Begin MediaPlayer1.Close; FileExt:=AnsiLowerCase(ExtractFileExt(OpenDialog1. FileName);/文件扩展名小写化 if FileExt=.wav then 是声音 begin Panel1.Caption:=播放声音; MediaPlayer1.Close; MediaPlayer1.FileName:=OpenDialog1.FileName; MediaPlayer1.Open; MediaPlayer1.Play; end else,if FileExt=.avi then是动画 begin with MediaPlayer1 do begin Close; display:=Panel1;播放窗口 FileName:=OpenDialog1.FileName; Panel1.Caption:=; Open; Rewind; Play; end; end else if Fi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程招投标从业人员考试试题及答案
- 高危儿的识别与管理试题及答案
- 安全培训签到及试卷归档细则
- 2026年中医耳鼻喉科小儿耳疳家庭养护宣教试题及答案
- 农电体制改革前后话农电安全培训
- 梁板安装安全技术交底培训课件
- 扩散管电火花加工电极部分脱落原因分析及改良措施
- (2026年)手术安全核查制度
- (2026年)家访工作总结
- 设备检测委托服务协议 机器设备第三方检验检测合同
- 船用齿轮箱使用说明书
- 2026秋新版小学青岛版(五四制)科学四年级上册教学设计(附目录)适用于新课标
- 绿色三星建筑施工方案
- 经济学原理(曼昆)笔记
- JBT 7946.2-2017 铸造铝合金金相 第2部分:铸造铝硅合金过烧
- 海姆立克急救课件
- 《建设工程定额原理与实务 第3版》 课件 第1章 建设工程定额概论
- 校园火灾隐患排查的常见问题与解决方法
- 党课之弘扬长征精神
- 2023年上海市高中学生化学竞赛暨华理化工杯初赛试题和答案
- GB/T 2440-2017尿素
评论
0/150
提交评论