第十一章CBuilder的多媒体世界课件说课材料

上传人:yuzo****123 文档编号:137414381 上传时间:2020-07-08 格式:PPT 页数:34 大小:414KB
返回 下载 相关 举报
第十一章CBuilder的多媒体世界课件说课材料_第1页
第1页 / 共34页
第十一章CBuilder的多媒体世界课件说课材料_第2页
第2页 / 共34页
第十一章CBuilder的多媒体世界课件说课材料_第3页
第3页 / 共34页
第十一章CBuilder的多媒体世界课件说课材料_第4页
第4页 / 共34页
第十一章CBuilder的多媒体世界课件说课材料_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《第十一章CBuilder的多媒体世界课件说课材料》由会员分享,可在线阅读,更多相关《第十一章CBuilder的多媒体世界课件说课材料(34页珍藏版)》请在金锄头文库上搜索。

1、第十一章 C+ Builder 的多媒體世界,在這個新的世代,圖片、動畫充斥在我們的身邊,BCB當然也不能在多媒體這塊區域缺席。在第11章我們將介紹各種多媒體元件的使用,也討論有關繪圖部分的設計,更深入探討影像繪圖處理上的速度,由於完整的元件支援,對於花俏功能的多媒體程式開發,對讀者們來說已經不再是高深的程式。,大綱,11-1 Image元件的建立 11-2 ImageList元件的建立 11-3 Animate動畫元件 11-4 MediaPlayer元件 11-5 繪圖功能 本章習題,11-1 Image元件的建立,圖形檔案的表現是本章所要介紹最基本的功能,BCB提供圖形載入的元件,可以方

2、便的讓我們操作圖形顯示和處理的動作,也就是本節所要介紹的Image元件。 Image元件不但可以讓我們把圖檔的內容顯示在Image元件的顯示範圍之內,我們也可以針對開啟的圖檔存在元件屬性裡的資料作處理,也就是利用Image元件作為介面,讓我們來編輯圖形檔案的內容。,Image圖形元件的主要屬性,11-2 ImageList元件的建立,如果我們要設計的應用程式需要使用很多的圖檔,或是要大量的作圖檔的存取動作,將每個Image元件的載入動作都做設定是一件很費力的事情。這個時候我們也許會需要一個可以管理這些圖形的方法。而TImageList元件顧名思義就是集中各個Image圖像成為一個圖像的列表,用

3、意在可以讓我們便於管理圖像的存取,但是有一個非常重要的限制,就是列表中的圖像大小要完全一樣。,ImageList元件的重要屬性,使用開發工具編輯ImageList,我們從右圖裡可以看到幾個主要的部分,下面的Images裡所顯示的是目前List裡所有的Image,當點選了之後可以在Selected Image格裡看到預覽畫面,而每個圖像的下面所顯示的數字就是該圖像在這個List裡面的Index編號,這是很重要的資訊,我們在存取時所要指定圖像就得要知道該圖像在列表裡的編號。,使用程式碼編輯ImageList,除了用編輯畫面加入圖像,我們也可以在程式碼裡利用內建的函式將圖像加入列表裡,如Add(),

4、AddImage()等等。使用方式如: Add( Graphics:TBitmap* Image , Graphics:TBitmap * mask); 就是指定Bitmap格式的圖像加入List裡。另外顯示圖像的方式我們可以利用Draw()函式,方法如下: Draw(Graphics:TCanvas *, int x,int y,int Index); 就是給予繪圖的元件,繪圖的起始座標x和y,以及要繪出圖像在ImageList裡的Index編號。 另外我們也可以利用Delete()和Clear()兩個函式把ImageList既有的圖像刪除,Delete函式是指定單一圖像一一刪除,所以我們必

5、須在使用Delete( )時要指定所要刪除圖像的Index編號,而Clear()函式則是將所有在列表裡的圖像全部刪除,用法如下: Delete(int Index); Clear( );,11-3 Animate動畫元件,使用Animate動畫元件可將動畫控制功能加到Form裡,動畫元件是一種可以顯示影音動畫AVI檔案。AVI檔案是一系列連續的Bitmap圖形所結合排列成的大量影像,連續撥放就像動畫一樣,而每一個顯示畫面的單位一般都稱為frame。BCB所提供的這個動畫表現的元件功能並不太完整,並不能撥放壓縮過的AVI檔案,只能撥放標準的AVI格式的檔案,而這樣的格式已經慢慢的被淘汰了。我們來

6、介紹這個元件的運作方式,其實Animate動畫元件的使用方式和下一節所要介紹的MediaPlayer的方式差不多,不過功能稍嫌陽春了些。,Animate動畫元件的應用 I,首先在開啟AVI檔案方面,元件的FileName屬性可以讓我們設定成所要開啟的檔案,所以我們可以利用這個屬性作介面,把檔案指定給Animate元件,當我們開啟了檔案之後就可以有以下的處理動作:Play,Seek,Reset,和Stop等等,這些動作都已經寫成函式了。,Animate動畫元件的應用 II,當我們把Animate元件加入Form時,所設定的元件大小就會是AVI格式撥放顯示的大小。首先當使用者開啟檔案後,如要撥放則

7、如下: Animate1-Play(0,Animate1-FrameCount,1); Play函式要求三個參數,分別為撥放的起始Frame,撥放的結尾Frame,以及撥放的次數,所以本例裡是從0開始撥放,撥放完整個AVI來源,而撥放次數是1次。而我們按下停止功能鍵要求撥放停止時,程式就執行: Animate1-Stop(); 最後我們要求程式在撥放結束時能夠回到撥放前的起始Frame,所以在Animate元件在Stop事件發生時給予Reset的動作: Animate1-Reset();,11-4 MediaPlayer元件,Windows作業系統的一大魅力,就是在多媒體的表現上面一直有很突出

8、的效果。現在我們在Windows環境下,只要有作業系統內建的MediaPlayer軟體,幾乎就可以撥放所有的多媒體檔案。在視窗環境下撥放軟體透過MCI(Media Control Interface)函式介面與多媒體設備溝通,所謂的MCI就是一種介於撥放介面和媒體資源的介面,對於撥放多媒體資料,已經有MCI完成一些處理動作,讓程式設計師可以利用這個介面輕易的作多媒體資料的處理。在BCB的環境下我們可以利用MediaPlayer元件來達到撥放的功能,MediaPlayer是MCI的元件類別,在視覺表現上只是一堆功能按鍵,但是該元件以和MCI做好完整的連結,所以我們只需要用到MediaPlayer

9、元件就可以控制多媒體檔案,光碟機等多媒體設備,來達到撥放的功能。,MediaPlayer按鍵和功能說明,MediaPlayer重要屬性說明 I,1.FileName屬性: FileName的型態為一Ansi字串,內容為目前元件正在撥放的檔案路徑以及名稱。透過FileName屬性我們可以利用OpenDialog元件來處理開啟檔案的介面,如: MediaPlayer1-FileName = OpenDialog1-FileName; 2.Mode屬性: Mode屬性為紀錄目前所開啟媒體設備的模式,其模式共有7種,分別為:Not Ready , Stopped , Playing , Recordi

10、ng , Seeking , Paused , Open。當我們製作撥放程式介面時可以將Mode顯示在視窗某個地方,讓使用者知道目前程式所執行的動作為何。,MediaPlayer重要屬性說明 II,3.Notify屬性: Notify屬性為控制OnNotify事件是否發生,型態為Bool。如值為true則在目前MCI命令完成時將會啟動OnNotify事件,若為False則否。舉例來說,如果我們希望撥放媒體完成時可以產生一個訊息告知我們檔案已經撥放完畢,那我們就可以在Notify屬性裡設定成true,並在OnNotify事件裡加進顯示訊息的程式碼,Notify更改如: MediaPlayer1-

11、Notify = true;MediaPlayer1-Play(); OnNotify事件程式碼加入如下: application - MessageBox(檔案撥放完畢!,NULL,MB_OK);end; 4.Position屬性,StartPos屬性,EndPos屬性; 紀錄檔案撥放的位置是控制檔案撥放的方式,StartPos屬性可以讓我們設定撥放檔案的時候要從哪個位置開始撥放,EndPos屬性則是讓我們設定要撥放到哪個位置,Position屬性則是紀錄目前撥放的位置。預設的StartPos和EndPos分別為檔案開始和結尾的地方,如果我們希望在撥放介面裡加入ScrollBar那我們就可以

12、利用ScrollBar裡的Position屬性和MediaPlayer的Position去做對應。,MediaPlayer範例說明 I,撥放介面如右圖 範例我們可以看到的元件有MediaPlayer元件,Panel元件,MainMenu元件,ScrollBar元件以及三個Label元件。另外為了功能而加的有OpenDialog元件和Timer元件。,MediaPlayer範例說明 II,首先我們先在新的專案裡建立以下物件:OpenDialog1,Panel1,MediaPlayer1,ScrollBar1,Label1,Label2,Label3,Timer1,以及MainManu1等元件。在

13、MainMenu1裡我們加入兩個選項;Open和Exit,並且MainMenu1的Caption更改成File,MediaPlayer範例說明 III,我們設計按下File的Open時,就會開啟檔案開啟對話方塊,讓我們選擇要撥放的檔案,而按下Exit時就關閉視窗。 所以要加入以下程式碼,MediaPlayer範例說明 IV,首先我們希望開啟的檔案由MedaiPlayer1來撥放; MediaPlayer1-FileName = OpenDialog1-FileName; 接著我們開始開啟MediaPlayer MediaPlayer1-Open(); 關於ScrollBar的總長度我們希望和檔

14、案大小相關,所以我們以下設定: ScrollBar1- Max = MediaPlayer1-TrackLength1; 然後我們設定按下Exit時的動作,在Exit1被Click的事件如下:,MediaPlayer範例說明 V,以上的動作就把開啟檔案和關閉視窗的動作完成了,現在我們來注意MediaPlayer1該作的動作,以下為程式碼:,MediaPlayer範例說明 VI,完成了以上的動作基本上媒體撥放的功能就已經齊全了,不過我們還希望能夠有ScrollBar來顯示撥放進度,以及我們可以利用ScrollBar來調整撥放的內容。 要考慮ScrollBar的動作有兩個地方,第一就是Scroll

15、Bar要隨著檔案撥放自己跑動,第二就是當我們拉動ScrollBar時,檔案撥放的位置也要跟著我們ScrollBar拉的位置去改變目前撥放的位置。要完成第一個動作我們需要用Timer來協助我們產生變動的事件:,11-5 繪圖功能,我們可以重很多有關圖形的元件裡看到他們同樣擁有的類別Canvas,這類的元件有TForm,TImage,TbitButton.等等。而Canvas類別就是處理Windows繪圖的介面,這個類別將會跟Windows的裝置驅動程式作溝通,Windows會透過裝置驅動程式把做好轉換的資料結構顯示在裝置顯示器上面。也就是說Canvas類別我們可以看成是一套幫我們管理Window

16、s內的繪圖動作的API的類別。因此有了Canvas後,我們在開發繪圖程式時就會十分便利,只需要知道如何利用Canvas就可以將我們要的繪圖功能表現出來。,11-5 繪圖功能,我們可以利用兩種Canvas下的類別,Pen(畫筆)和Brush(畫刷)。首先我們先看畫筆的屬性,我們可以設定畫筆的三個重要屬性,分別為畫筆的寬度,畫筆畫出來的顏色,以及畫筆本身的形式,如實線虛線等等。在顏色方面我們可以設定成VCL所提供的顏色類別。寫法如下: Tcolor DrawColor = Tcolor(RGB(100,100,100); 其中RGB(x,y,z)裡面的x代表的是紅色的比重,y代表的是綠色的比重,z代表的是藍色的比重。每個顏色的比重值可以是0到255,所以我們可以自行調配出255*255*255種顏色出來。,Canvas所提供的重要屬性和函式 I,Pixels: 我們可以把任何的圖像當看作是大量的像素所組成的,當然我們也可以直接對於像素作處理,每個pixel所在圖像的位置就好像是座標一樣,只要指定好要對那個座標的像素處理即可,簡例如下: Image1-Pixels1020 = cl

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号