一種通過第三方軟件實(shí)現(xiàn)ppt嵌入的方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)圖形界面處理領(lǐng)域,尤其涉及一種通過第三方軟件實(shí)現(xiàn)PPT嵌入的方法和系統(tǒng)。
【背景技術(shù)】
[0002]傳統(tǒng)的PowerPoint (以下簡稱PPT)嵌入技術(shù)一般采用截圖保存為多張圖片,以圖片形式呈現(xiàn),這種方法無法體現(xiàn)PPT的動(dòng)畫過程?,F(xiàn)有技術(shù)可使用實(shí)時(shí)截圖的方式展示PPT文件的動(dòng)畫過程,但該技術(shù)方案對(duì)機(jī)器的CPU資源消耗嚴(yán)重、對(duì)設(shè)備的性能要求非常高,如設(shè)備性能不足則無法達(dá)到呈現(xiàn)畫面的流暢性?,F(xiàn)有的高性能設(shè)備每秒秒捕獲圖片的極限受分辨率的限制,也僅為30?50張。
[0003]現(xiàn)有技術(shù)還有將PPT在子窗口中加載,然后在父窗口中呈現(xiàn),利用父子窗口的特性來做到PPT的嵌入。這種方式下由于父子窗口的消息處理與平級(jí)窗口之間的處理方式有些差別,因此在子窗口中呈現(xiàn)PPT,對(duì)程序的穩(wěn)定性有很大影響。其次這種顯示方式也無法實(shí)現(xiàn)對(duì)呈現(xiàn)內(nèi)容的個(gè)性化操作處理比如旋轉(zhuǎn)、上下層切換等等。就是連最基本的放大、縮小時(shí)呈現(xiàn)畫面也不夠流暢。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于提供一種通過第三方軟件實(shí)現(xiàn)PPT嵌入的方法和系統(tǒng),用于解決傳統(tǒng)的PPT嵌入方式消耗性能、流暢性差的缺點(diǎn)。
[0005]為了解決上述技術(shù)問題,本發(fā)明的第一方面提供了一種通過第三方軟件實(shí)現(xiàn)PPT嵌入的方法。
[0006]一種通過第三方軟件實(shí)現(xiàn)PPT嵌入的方法,所述方法包括:
[0007]PPT裝載組件加載PPT ;
[0008]后臺(tái)程序獲取所述PPT的窗口句柄;
[0009]后臺(tái)程序根據(jù)所述窗口句柄獲取所述PPT的窗口大??;
[0010]后臺(tái)程序根據(jù)所述PPT的窗口大小創(chuàng)建紋理視圖;
[0011]后臺(tái)程序?qū)⑺鯬PT的窗口的設(shè)備內(nèi)容拷貝至所述紋理視圖的后備緩沖區(qū)的背景設(shè)備內(nèi)容上。
[0012]作為進(jìn)一步的技術(shù)方案,所述步驟PPT裝載組件加載PPT之前,所述方法還包括:
[0013]啟動(dòng)后臺(tái)程序;
[0014]啟動(dòng)PPT。
[0015]作為進(jìn)一步的技術(shù)方案,所述步驟后臺(tái)程序獲取所述PPT的窗口句柄具體為:
[0016]調(diào)用后臺(tái)程序的FindWindow函數(shù);
[0017]通過所述FindWindow函數(shù)獲取裝載所述PPT的窗口句柄。
[0018]作為進(jìn)一步的技術(shù)方案,所述步驟將所述PPT的窗口的設(shè)備內(nèi)容拷貝至所述紋理視圖的后備緩沖區(qū)具體為:
[0019]調(diào)用后臺(tái)程序的Bit-BLt函數(shù);
[0020]在第三方軟件渲染場(chǎng)景時(shí),通過所述Bit-Blt函數(shù)將所述PPT窗口的設(shè)備內(nèi)容拷貝至所述紋理視圖的后備緩沖區(qū)的背景設(shè)備內(nèi)容上。
[0021]作為進(jìn)一步的技術(shù)方案,所述步驟將所述PPT的窗口的設(shè)備內(nèi)容拷貝至所述紋理視圖的后備緩沖區(qū)后,所述方法還包括:
[0022]將所述后備緩沖區(qū)的背景設(shè)備內(nèi)容上的PPT的窗口內(nèi)容呈現(xiàn)在第三方軟件的界面上。
[0023]根據(jù)本發(fā)明的第二方面,提供了一種通過第三方軟件實(shí)現(xiàn)PPT嵌入的系統(tǒng)。
[0024]—種通過第三方軟件實(shí)現(xiàn)PPT嵌入的系統(tǒng),所述系統(tǒng)包括后臺(tái)程序和第三方軟件的PPT裝載組件;
[0025]所述后臺(tái)程序包括:
[0026]第一獲取模塊,用于獲取所述PPT的窗口句柄;
[0027]第二獲取模塊,用于根據(jù)所述窗口句柄獲取所述PPT的窗口大??;
[0028]創(chuàng)建模塊,用于根據(jù)所述PPT的窗口大小創(chuàng)建紋理視圖;
[0029]拷貝模塊,用于將所述PPT的窗口的設(shè)備內(nèi)容拷貝至所述紋理視圖的后備緩沖區(qū)的背景設(shè)備內(nèi)容上。
[0030]作為進(jìn)一步的技術(shù)方案,所述系統(tǒng)還包括:
[0031]第一啟動(dòng)模塊,用于在PPT裝載組件加載PPT之前,啟動(dòng)后臺(tái)程序;
[0032]第二啟動(dòng)模塊,用于在PPT裝載組件加載PPT之前,啟動(dòng)PPT。
[0033]作為進(jìn)一步的技術(shù)方案,所述第一獲取模塊還包括:
[0034]第一調(diào)用單元,用于調(diào)用后臺(tái)程序的FindWindow函數(shù);
[0035]獲取單元,用于通過所述FindWindow函數(shù)獲取裝載所述PPT的窗口句柄。
[0036]作為進(jìn)一步的技術(shù)方案,所述拷貝模塊包括:
[0037]第二調(diào)用單元,用于調(diào)用后臺(tái)程序的Bit-Blt函數(shù);
[0038]拷貝單元,用于在第三方軟件渲染場(chǎng)景時(shí),通過所述Bit-Blt函數(shù)將所述PPT窗口的設(shè)備內(nèi)容拷貝至所述紋理視圖的后備緩沖區(qū)的背景設(shè)備內(nèi)容上。
[0039]作為進(jìn)一步的技術(shù)方案,所述系統(tǒng)還包括:
[0040]呈現(xiàn)模塊,用于將所述PPT的窗口的設(shè)備內(nèi)容拷貝至所述紋理視圖的后備緩沖區(qū)后,將所述后備緩沖區(qū)的背景設(shè)備內(nèi)容上的PPT的窗口內(nèi)容呈現(xiàn)在第三方軟件的界面上。
[0041]有益效果:
[0042]在本發(fā)明中,通過后臺(tái)程序獲取所述PPT的窗口句柄,后臺(tái)程序根據(jù)所述窗口句柄獲取所述PPT的窗口大?。缓笈_(tái)程序根據(jù)所述PPT的窗口大小創(chuàng)建紋理視圖以及后臺(tái)程序?qū)⑺鯬PT的窗口的設(shè)備內(nèi)容拷貝至所述紋理視圖的后備緩沖區(qū)的背景設(shè)備內(nèi)容上。本發(fā)明實(shí)現(xiàn)了很好的PPT嵌入,不需要復(fù)制圖片的性能高消耗,又用可以利用directxll的ID3DllTexture2D來進(jìn)行各種個(gè)性化操作,同時(shí)也利用了 directxll的3d顯卡加速功能來保證呈現(xiàn)畫面的流暢性。
【附圖說明】
[0043]圖1是本發(fā)明實(shí)施例1提供的一種通過第三方軟件實(shí)現(xiàn)PPT嵌入的方法的流程示意圖。
[0044]圖2是本發(fā)明實(shí)施例2提供的一種通過第三方軟件實(shí)現(xiàn)PPT嵌入的系統(tǒng)的系統(tǒng)框圖。
【具體實(shí)施方式】
[0045]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0046]為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實(shí)施例來說明。
[0047]實(shí)施例1
[0048]如圖1所示,一種通過第三方軟件實(shí)現(xiàn)PPT嵌入的方法,所述方法包括:
[0049]SlOl:PPT裝載組件加載PPT ;
[0050]S102:后臺(tái)程序獲取所述PPT的窗口句柄;
[0051]S103:后臺(tái)程序根據(jù)所述窗口句柄獲取所述PPT的窗口大??;
[0052]S104:后臺(tái)程序根據(jù)所述PPT的窗口大小創(chuàng)建紋理視圖;
[0053]S105:后臺(tái)程序?qū)⑺鯬PT的窗口的設(shè)備內(nèi)容拷貝至所述紋理視圖的后備緩沖區(qū)的背景設(shè)備內(nèi)容上。
[0054]需要說明的是,本案中的第三方軟件為一 Direct 11軟件,其中Direct 11軟件包括植染管線:DirectX 11加入了對(duì)Tessellat1n (鑲嵌)的支持,鑲嵌由外殼著色器、鑲嵌單元以及域著色器組成。同時(shí)還加入了計(jì)算著色器,計(jì)算著色器與DXlO中引入的GS不同,它并不是渲染管線的一部分,鑲嵌可以把一些較大的圖元分成很多更小的圖元,并將這些小圖元組合到一起,形成一種有序的幾何圖形,這種幾何圖形更復(fù)雜,當(dāng)然也更接近現(xiàn)實(shí)。這個(gè)過程也被稱作細(xì)分曲面舉例來說,鑲嵌可以讓一個(gè)立方體,通過處理看起來像是個(gè)球形,這樣的話無疑節(jié)省了空間。此外,圖形的質(zhì)量、性能以及可控性也達(dá)到了一定的促進(jìn)。由于DirectX 11所新增的特性甚至可以應(yīng)用到DirectX 10硬件中,所以我們對(duì)于DirectX 11的快速應(yīng)用都非常期待和樂觀。DirectX 11特性還包括很重要一點(diǎn):支持多線程。得益于此,應(yīng)用程序可以同步創(chuàng)造有用資源或者管理狀態(tài),并從所有專用線程中發(fā)送提取命令,這樣做無疑效率更高。DirectX 11的這種多線程技術(shù)可能并不能加速繪圖的子系統(tǒng)(特別是當(dāng)我們的GPU資源受限時(shí)),但是這樣卻可以提升線程啟動(dòng)游戲的效率,并且可以利用臺(tái)式CPU核心數(shù)量不斷提高所帶來的潛力。所述PPT裝載組件為該Directll軟件的一部分。
[0055]需要說明的是,所述步驟PPT裝載組件加載PPT之前,所述方法還包括:
[0056]啟動(dòng)后臺(tái)程序;啟動(dòng)PPT。該啟動(dòng)后臺(tái)程序的操作可以通過軟件設(shè)置的按鈕實(shí)現(xiàn),也可在打開軟件時(shí)就自動(dòng)打開后臺(tái)程序,當(dāng)然,在其他的實(shí)施例中,也可為其他的實(shí)施方式,并不局限于本發(fā)明的實(shí)施方式。
[0057]在本發(fā)明的實(shí)施例1中,所述步驟后臺(tái)程序獲取所述PPT的窗口句柄具體為:
[0058]調(diào)用后臺(tái)程序的FindWindow函數(shù);
[0059]通過所述FindWindow函數(shù)獲取裝載所述PPT的窗口句柄。
[0060]具體的,所述FindWindow函數(shù)可以通過全局變量調(diào)用,也可通過局部變量調(diào)用。其中,句柄指一個(gè)對(duì)象的標(biāo)識(shí),而指針是一個(gè)對(duì)象的內(nèi)存首地址。從實(shí)際處理的角度講,即可以把句柄定義為指針,又可以把它定義為同類對(duì)象數(shù)組的索引,該FindWindow獲取的值則為該P(yáng)PT的窗口句柄的大小。該函數(shù)對(duì)指定的源設(shè)備環(huán)境區(qū)域中的像素進(jìn)行位塊(bit_block)轉(zhuǎn)換,以傳送到目標(biāo)設(shè)備環(huán)境。
[0061]在本發(fā)明的實(shí)施例1中,所述步驟將所述PPT的窗口的設(shè)備內(nèi)容拷貝至所述紋理視圖的后備緩沖區(qū)具體為:
[0062]調(diào)用后臺(tái)程序的Bit-BLt函數(shù);
[0063]在第三方軟件渲染場(chǎng)景時(shí),通過所述Bit-Blt函數(shù)將所述PPT窗口的設(shè)備內(nèi)容拷貝