欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種動(dòng)畫播放的方法和裝置的制作方法

文檔序號(hào):6579632閱讀:166來源:國(guó)知局
專利名稱:一種動(dòng)畫播放的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種動(dòng)畫播放的方法和裝置。
背景技術(shù)
隨著計(jì)算機(jī)技術(shù)的發(fā)展,動(dòng)畫制作與應(yīng)用得到了迅猛的發(fā)展,使得動(dòng)畫 的制作從純手工繪制到手工繪制與計(jì)算機(jī)輔助繪制。而網(wǎng)絡(luò)技術(shù)的發(fā)展更加 推動(dòng)了動(dòng)畫制作的發(fā)展與應(yīng)用,借助于網(wǎng)絡(luò)平臺(tái),動(dòng)畫被大量運(yùn)用于各種網(wǎng) 頁(yè)制作,各種聊天工具豐富的動(dòng)畫功能以及各種游戲(尤其是網(wǎng)絡(luò)游戲)的
制作中。
動(dòng)畫是由 一 系列的靜態(tài)幀組成的幀序列,幀是進(jìn)行動(dòng)畫制作的最基本的 單位,每一個(gè)動(dòng)畫都是由很多個(gè)幀構(gòu)成的,用于顯示每一個(gè)靜態(tài)畫面,在時(shí)
間軸上的每一幀包含需要顯示的所有內(nèi)容,例如圖形、聲音、各種素材和 其他多種對(duì)象。當(dāng)要對(duì)動(dòng)畫進(jìn)行播放時(shí),首先將幀序列進(jìn)行存儲(chǔ),然后將幀 序列中的每一個(gè)幀按照時(shí)間序列逐一顯示,從而形成連續(xù)的動(dòng)畫效果。
現(xiàn)有技術(shù)中,對(duì)每個(gè)幀進(jìn)行存儲(chǔ)時(shí),每個(gè)幀的尺寸是一樣。當(dāng)對(duì)一個(gè)內(nèi) 容較多,規(guī)模較大的動(dòng)畫進(jìn)行存儲(chǔ)和播放時(shí),占用了大量的內(nèi)存以及CPU (Center Processing Unit,中央處理器)計(jì)算資源。
在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在如下問題 現(xiàn)有技術(shù),每一幀的尺寸是一樣,其實(shí)并不是每一幀畫面內(nèi)容都完全布 滿了畫面,往往有許多空白區(qū)域,而這些空白區(qū)域不^f叉占用內(nèi)存,而且在動(dòng) 畫顯示時(shí)和場(chǎng)景融合的計(jì)算也消耗CPU計(jì)算資源。

發(fā)明內(nèi)容
本發(fā)明提供了 一種動(dòng)畫播放的方法和裝置,用于對(duì)幀畫面的坐標(biāo)進(jìn)行修 正后顯示幀畫面,節(jié)省幀畫面存^f諸時(shí)占用的內(nèi)存空間,減少幀畫面顯示時(shí)融 合到畫布的計(jì)算消耗。本發(fā)明提供了一種動(dòng)畫播放的方法,包括
獲取動(dòng)畫中下一4寺4番放幀的幀畫面以及對(duì)應(yīng)的初始坐標(biāo);
獲取所述幀畫面的位置與原始幀畫面位置的偏移量;
根據(jù)所述偏移量對(duì)所述初始坐標(biāo)進(jìn)行纟務(wù)正,獲取所述幀畫面的實(shí)際坐標(biāo);
在所述實(shí)際坐標(biāo)顯示所述幀畫面。
所述獲取下一待播放幀的幀畫面以及對(duì)應(yīng)的初始坐標(biāo)之前,包括 切割原始幀畫面,獲4尋所述幀畫面;
獲取所述幀畫面位置相對(duì)于所述原始幀畫面位置的偏移量; 存儲(chǔ)所述幀畫面和所述偏移量。 所述切割原始幀畫面,獲得所述幀畫面包括 識(shí)別所述原始幀畫面的非透明像素的位置;
根據(jù)所述非透明像素的位置的識(shí)別結(jié)果獲取所述原始幀畫面的空白區(qū)域和 非空白區(qū)域,所述非空白區(qū)域?yàn)镸J'J形狀或非身見則形狀; 存儲(chǔ)所述非空白區(qū)域,獲得所述幀畫面。
所述獲取所述幀畫面位置相對(duì)于所述原始幀畫面位置的偏移量為獲取所述 幀畫面位置相對(duì)于所述原始幀畫面位置的左上方偏移量,包括
獲取所述幀畫面位置相對(duì)于所述原始幀畫面位置的橫坐標(biāo)偏移量和縱坐標(biāo) 偏移量;
所述獲取所述橫坐標(biāo)偏移量具體為獲取所述原始幀畫面的左側(cè)空白區(qū) 域,所述空白區(qū)域的寬度為所述橫坐標(biāo)偏移量;
所述獲取所述縱坐標(biāo)偏移量具體為獲取所述原始幀畫面的上側(cè)空白區(qū) 域,所述空白區(qū)域的高度為所述縱坐標(biāo)偏移量。
包括
所述才艮據(jù)所述偏移量對(duì)所述初始坐標(biāo)進(jìn)^ff'務(wù)正,獲取所述幀畫面的實(shí)際坐
標(biāo)為對(duì)所述初始坐標(biāo)和所述偏移量求和。 所述原始幀畫面為尺寸相等的幀畫面。
本發(fā)明提供了一種動(dòng)畫播放的裝置,包括第 一獲取模塊,用于獲取動(dòng)畫中下一待播放幀的幀畫面以及對(duì)應(yīng)的初始坐
標(biāo)以及所述幀畫面的位置與原始幀畫面位置的偏移量;
修正模塊,用于根據(jù)所述第一獲取模塊獲取的所述偏移量對(duì)所述初始坐標(biāo) 進(jìn)行修正,獲取所述幀畫面的實(shí)際坐標(biāo);
顯示模塊,用于在所述修正模塊獲取的所述實(shí)際坐標(biāo)顯示所述幀畫面。
還包括
切割才莫塊,用于切割原始幀畫面,獲得所述幀畫面;
第二獲耳5U漠塊,用于獲取所述切割模塊獲取的所述幀畫面位置相對(duì)于所述 原始幀畫面位置的偏移量;
存儲(chǔ)模塊,用于存儲(chǔ)所述切割模塊獲取的幀畫面和所述第二獲取模塊獲取 的所述偏移量。
所述切割模塊包括
識(shí)別子模塊,用于識(shí)別所述原始幀畫面的非透明像素的位置; 獲取子模塊,用于根據(jù)所述識(shí)別子模塊識(shí)別的所述非透明像素的位置的識(shí)
別結(jié)果獲取所述原始幀畫面的空白區(qū)域和非空白區(qū)域,所述非空白區(qū)域?yàn)橐?guī)則
形狀或非規(guī)則形狀;
存儲(chǔ)子模塊,用于存儲(chǔ)所述非空白區(qū)域,獲得所述幀畫面。
所述第二獲取沖莫塊具體用于獲取所述幀畫面位置相對(duì)于所述原始幀畫面位
置的左上方偏移量,包括
獲取所述幀畫面位置相對(duì)于所述原始幀畫面位置的橫坐標(biāo)偏移量和縱坐標(biāo)
偏移量;
所述獲取所述4黃坐標(biāo)偏移量具體為獲取所述原始幀畫面的左側(cè)空白區(qū) 域,所述空白區(qū)域的寬度為所述橫坐標(biāo)偏移量;
所述獲取所述縱坐標(biāo)偏移量具體為獲取所述原始幀畫面的上側(cè)空白區(qū) 域,所述空白區(qū)域的高度為所述縱坐標(biāo)偏移量。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)
在播放動(dòng)畫時(shí),通過幀畫面的實(shí)際坐標(biāo),修正角色變量在畫布中的位置, 不但節(jié)省了幀畫面存儲(chǔ)時(shí)占用的內(nèi)存空間,同時(shí)減少了幀畫面顯示時(shí)融合到
7畫布的計(jì)算消耗。


為了更清楚地說明本發(fā)明或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)本發(fā)明或 現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中 的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付 出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1本發(fā)明實(shí)施例中一種動(dòng)畫播放方法流程圖2本發(fā)明實(shí)施例中一種動(dòng)畫存儲(chǔ)方法流程圖3本發(fā)明實(shí)施例中原始幀畫面區(qū)域示意圖4本發(fā)明實(shí)施例中原始幀畫面切割范圍示意圖5本發(fā)明實(shí)施例中一種動(dòng)畫播放方法流程圖6本發(fā)明實(shí)施例中切割后幀畫面相對(duì)于原始幀畫面位置偏移示意圖7本發(fā)明實(shí)施例中切割后幀畫面相對(duì)于原始幀畫面位置偏移示意圖8本發(fā)明實(shí)施例中一種動(dòng)畫播放方法流程圖9本發(fā)明實(shí)施例中多幀畫面切割前后對(duì)比示意圖10本發(fā)明實(shí)施例中一種動(dòng)畫播放裝置結(jié)構(gòu)示意圖11本發(fā)明實(shí)施例中一種動(dòng)畫播^:裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式
本發(fā)明提供的技術(shù)方案中,其主要技術(shù)方案為獲取下一待播放幀的幀畫 面以及對(duì)應(yīng)的初始坐標(biāo);獲取所述幀畫面的位置與原始幀畫面位置的偏移量; 根據(jù)所述偏移量對(duì)所述初始坐標(biāo)進(jìn)行修正,獲取所述幀畫面的實(shí)際坐標(biāo);在所 述實(shí)際坐標(biāo)顯示所述幀畫面。
下面將結(jié)合本發(fā)明中的附圖,對(duì)本發(fā)明的技術(shù)方案進(jìn)行清楚、完整地描 述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。 基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下 所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明實(shí)施例提供一種動(dòng)畫播放的方法,如圖1所示,具體包括以下步

步驟101、獲取動(dòng)畫中下一待播放幀的幀畫面以及對(duì)應(yīng)的初始坐標(biāo)。 步驟102、獲:EF又幀畫面的位置與原始幀畫面位置的偏移量。 步驟103、才艮據(jù)偏移量對(duì)初始坐標(biāo)進(jìn)行修正,獲取幀畫面的實(shí)際坐標(biāo)。 步驟104、在實(shí)際坐標(biāo)顯示所述幀畫面。
本發(fā)明實(shí)施例通過在播放時(shí)獲取幀畫面的實(shí)際坐標(biāo),修正角色變量在畫 布中的位置,不但節(jié)省了幀畫面存儲(chǔ)時(shí)占用的內(nèi)存空間,同時(shí)減少了幀畫面 顯示時(shí)融合到畫布的計(jì)算消耗。
動(dòng)畫是由一系列的靜態(tài)幀組成的幀序列,按照時(shí)間序列逐幀呈現(xiàn)而成的。 每個(gè)幀畫面預(yù)先存儲(chǔ)在內(nèi)存中,當(dāng)播放動(dòng)畫時(shí),將該幀序列中的每個(gè)幀逐一導(dǎo) 入到動(dòng)畫制作軟件中,再將每個(gè)幀畫面連續(xù)播放出來。當(dāng)每秒連續(xù)播放24幀時(shí), 人的肉眼是分辨不出每一個(gè)幀畫面的,從而呈現(xiàn)的是連續(xù)的動(dòng)畫效果。
角色動(dòng)畫是指角色變量在一個(gè)大的畫布中或者畫面場(chǎng)景中運(yùn)動(dòng)。其中角色 變量對(duì)應(yīng)了兩個(gè)數(shù)據(jù), 一個(gè)數(shù)據(jù)為該角色變量的幀畫面數(shù)據(jù),該幀畫面數(shù)據(jù)為 一個(gè)矩陣形式的位圖,用于呈現(xiàn)該角色變量的靜態(tài)畫面;另一個(gè)數(shù)據(jù)為該角色 變量對(duì)應(yīng)的邏輯坐標(biāo),該坐標(biāo)為該角色變量在畫布上進(jìn)4亍移動(dòng)時(shí)對(duì)應(yīng)的坐標(biāo)。 由上述可知,角色動(dòng)畫的每個(gè)靜態(tài)畫面由幀畫面完成,角色動(dòng)畫中角色變量的 動(dòng)作由連續(xù)播-;改的幀完成,角色動(dòng)畫中的角色變量相對(duì)于畫布的位置移動(dòng)由角 色變量的邏輯坐標(biāo)組合完成。
例如 一個(gè)角色動(dòng)畫所要呈現(xiàn)的畫面是一個(gè)主人領(lǐng)著一只小狗在公園里散 步。主人領(lǐng)著小狗在公園里散步時(shí),對(duì)應(yīng)的每個(gè)瞬間的靜態(tài)畫面由該角色動(dòng)畫 的幀畫面完成;主人領(lǐng)著d、狗散步的動(dòng)態(tài)動(dòng)作由連續(xù)播放上述的幀畫面完成, 但此時(shí)主人和小狗相對(duì)于畫布的位置是不變的,僅是進(jìn)行原地的散步;主人領(lǐng) 著小狗在公園里散步而產(chǎn)生的位置變換則由該角色動(dòng)畫的角色變量的邏輯坐標(biāo) 的變換完成, 一系列的邏輯坐標(biāo)形成運(yùn)動(dòng)的軌跡,從而產(chǎn)生角色變量的位置變 換。
基于上述分析,本發(fā)明的實(shí)施例中提供了一種動(dòng)畫播放的方法,其主要技術(shù)方案在于
該方法主要包括兩個(gè)步驟(1)對(duì)原始幀畫面進(jìn)行切割,并存儲(chǔ)切割后幀 畫面以及切割后幀畫面位置相對(duì)于原始幀畫面位置的偏移量。(2)根據(jù)存儲(chǔ)的 偏移量對(duì)切割后幀畫面3于應(yīng)的初始坐標(biāo)進(jìn)4li多正,獲耳又該切割后幀畫面對(duì)應(yīng)的 實(shí)際坐標(biāo),并在該實(shí)際坐標(biāo)處顯示該切割后幀畫面,通過連續(xù)地替換當(dāng)前顯示 的切割后幀畫面實(shí)現(xiàn)動(dòng)畫的播;改。
以下首先對(duì)上述步驟(1)中所述的切割原始幀畫面并存儲(chǔ)該幀畫面以及 對(duì)應(yīng)的偏移量進(jìn)行描述。具體的,獲得的下一待播放幀的幀畫面需要預(yù)先經(jīng) 過幀畫面切割處理并進(jìn)行相應(yīng)的存儲(chǔ),下述流程提供一種動(dòng)畫存儲(chǔ)的方法, 存儲(chǔ)幀畫面時(shí),對(duì)幀畫面的空白區(qū)域進(jìn)行切割,用切割后幀畫面替換原始幀 畫面進(jìn)行存儲(chǔ),如圖2所示,具體包括以下步驟
步驟201、獲^F又原始幀畫面。
具體的,獲取未進(jìn)行空白區(qū)域切割的幀畫面,其對(duì)應(yīng)的幀畫面數(shù)據(jù)為{frame 1},該幀畫面數(shù)據(jù)為一個(gè)矩陣形式的位圖,用于呈現(xiàn)該角色變量的靜態(tài)畫面, 此時(shí)每一個(gè)幀畫面的大小是一樣。
本流程中以所獲取的原始幀畫面所覆蓋區(qū)域的橫坐標(biāo)為(Xll, X12),縱 坐標(biāo)為(Yll, Y12)為例進(jìn)行說明,具體如圖3所示。
步驟202 、切割原始幀畫面。
在步驟201中所獲取的原始幀畫面中,由于未進(jìn)行空白區(qū)域切割,每一個(gè) 幀畫面的大小是一樣,但其實(shí)并不是每一個(gè)原始幀畫面內(nèi)容完全布滿了整個(gè)畫 布,往往有許多空白區(qū)域。而這些空白區(qū)域不^f又占用內(nèi)存,而且在動(dòng)畫顯示和 場(chǎng)景融合計(jì)算時(shí)消耗CPU計(jì)算資源。因此需要將原始幀畫面的空白區(qū)域切割掉, 減小每個(gè)幀畫面對(duì)內(nèi)存的占用以及計(jì)算資源。
具體的,切割掉幀畫面的空白區(qū)域,如圖4所示,包括以下步驟
a) 識(shí)別原始幀畫面上下左右四邊的非透明像素。
b) 獲取上述原始幀畫面上下兩邊的非透明像素的縱軸坐標(biāo)Y21和Y22,其 中Y2KY22;以及上述幀畫面左右兩邊的非透明像素的橫軸坐標(biāo)X21和X22, 其中X21 <X22。C)計(jì)算切割后幀畫面位置相對(duì)于原始幀畫面位置的左上方偏移量。 原始幀畫面進(jìn)行切割后所得的非空白區(qū)域?yàn)榍懈詈髱嬅妗7强瞻讌^(qū)域可
為規(guī)則形狀或非規(guī)則形狀,優(yōu)選地,本發(fā)明實(shí)施例中以非空白區(qū)域?yàn)榫匦螢槔?br> 進(jìn)行說明。
所以,上述步驟中獲得的非空白區(qū)域?yàn)橛蒟21 =0 , X22=0 , Y21 =0以及Y22=0 四條直線所圍成;
為了節(jié)約存儲(chǔ)空間,優(yōu)選地,本發(fā)明實(shí)施例中將切割后幀畫面向左上方偏 移,直至與原始幀畫面的左上方重合。此時(shí),左上方偏移量為fX = X21-Xll, fY二Y12-Y22,其中fX為該幀畫面橫軸的偏移量,fY為該幀畫面縱軸的偏移量, 其區(qū)域?yàn)閳D4中陰影部分所示。
需要說明的是,本發(fā)明實(shí)施例中切割后幀畫面的偏移量采用切割后幀畫面 位置相對(duì)于原始幀畫面位置的左上方偏移量,僅是一種優(yōu)選的實(shí)施方式。凡是 可以體現(xiàn)切割后幀畫面相對(duì)于切割前的幀畫面的位置移動(dòng)的參量均可以作為偏 移量,其中以節(jié)約存^f諸空間的為優(yōu)選。
步驟203、存儲(chǔ)切割后幀畫面以及切割后幀畫面位置相對(duì)于原始幀畫面位置 的偏移量。
具體的,存儲(chǔ)切割后幀畫面以及切割后幀畫面位置相對(duì)于原始幀畫面位置 左上方偏移量包括以下步驟
a) 才艮據(jù)步驟202所獲得的切割后幀畫面,將該切割后幀畫面作為新的幀畫 面進(jìn)4于存<諸,4# 原始幀畫面,該切割后幀畫面對(duì)應(yīng)的切割后幀畫面凄t據(jù)為 {frame 1,}。
b) 存儲(chǔ)所獲得的切割后幀畫面位置相對(duì)于原始幀畫面位置的左上方偏移量 與切割后幀畫面對(duì)應(yīng)的切割后幀畫面數(shù)據(jù)(frame 1,},其存儲(chǔ)形式為(frame 1,, fX, fY}。此時(shí),由于幀畫面進(jìn)行了空白區(qū)域的切割,所以此時(shí)每個(gè)幀畫面尺寸 大小不同。
對(duì)應(yīng)上述步驟(2),本發(fā)明實(shí)施例提供一種動(dòng)畫播放的方法,對(duì)播放時(shí) 獲取幀畫面的實(shí)際坐標(biāo),修正角色變量在畫布中的位置進(jìn)行描述,如圖5所示,具體包括以下步驟
步驟501、獲取下一待播放幀的幀畫面對(duì)應(yīng)的角色變量的初始坐標(biāo)。
角色變量的初始坐標(biāo)是該角色變量在畫布上進(jìn)行移動(dòng)時(shí)對(duì)應(yīng)的坐標(biāo)。此時(shí)
將該角色變量看做一個(gè)點(diǎn),獲取該角色變量的初始坐標(biāo)為(rX, rY),具體如圖 6所示。圖中,為了清晰,用圓圈在畫布中的位置^替該角色變量作為點(diǎn)在畫布 中的位置。
需要說明的是,本發(fā)明實(shí)施例中該角色變量與畫布的相對(duì)位置只是一種優(yōu) 選實(shí)施方式,在實(shí)際的角色動(dòng)畫中,該角色變量可以位于畫布上的任意位置; 將角色變量看做一個(gè)點(diǎn)只是一種優(yōu)選實(shí)施方式,便于說明及顯示,但并不限于 此,可以選擇該角色變量對(duì)應(yīng)的幀畫面上的任一點(diǎn)為基準(zhǔn)進(jìn)行計(jì)算和顯示。
步驟502、獲取下一待播放幀的幀畫面數(shù)據(jù)。
本流程實(shí)施例中下一待播放幀的幀畫面數(shù)據(jù)為切割掉空白區(qū)域后的幀畫 面,其lt據(jù)為(frame, 1},并攜帶用于#~正該幀畫面對(duì)應(yīng)的初始坐標(biāo)的左上方偏 移量(僅,fY}。
步驟503、計(jì)算該幀畫面的實(shí)際坐標(biāo)。
由于在步驟501中所獲取的為下一待播放幀的幀畫面對(duì)應(yīng)的角色變量的初 始坐標(biāo),為該角色變量對(duì)應(yīng)的幀畫面未進(jìn)行空白區(qū)域切割時(shí),該角色變量在畫 布上對(duì)應(yīng)的坐標(biāo)。而步驟502中所獲取的下一待播放幀的幀畫面數(shù)據(jù)為切割掉 空白區(qū)域后的幀畫面數(shù)據(jù)。所以,如果直接以該角色變量的初始坐標(biāo)輸出對(duì)應(yīng) 的幀畫面,則會(huì)產(chǎn)生位置偏差,偏差的大小即為該幀畫面進(jìn)行空白區(qū)域切割時(shí) 所得的切割后幀畫面左上方偏移量,具體如圖6所示,其中,陰影部分為左上 方偏移量。將圖6中的局部畫面放大,得到如圖7所示的畫面,將圖7和圖3 對(duì)比可知,此時(shí)該角色變量偏離了初始位置。因此,需要根據(jù)該角色變量的初 始坐標(biāo)以及該角色變量的幀畫面數(shù)據(jù)中所攜帶的的左上方偏移量計(jì)算該幀畫面
的實(shí)際坐標(biāo)。
具體的,計(jì)算該幀畫面的實(shí)際坐標(biāo)為 objroleView.rXa = objroleView.rX + objframe.6c; objroleView.rYa = objroleView.rY + objframe.fy;其中,objroleView為該角色變量;objroleView.rX和objroleView.rY分別為 該角色變量的初始4黃坐標(biāo)和縱坐標(biāo);objframe.fk和objframe.fy分別為該角色變 量的幀畫面進(jìn)行空白區(qū)域切割時(shí)所得的橫縱坐標(biāo)的左上方偏移量; objroleView.rXa和objroleView.rYa為該角色變量的實(shí)際坐標(biāo)。
步驟504、替換當(dāng)前顯示幀畫面數(shù)據(jù)。
具體的,替換幀畫面的顯示數(shù)據(jù)為用下一待"l番;故幀的幀畫面數(shù)據(jù)替換當(dāng) 前顯示幀畫面凄t據(jù),在該角色變量的實(shí)際坐標(biāo)處進(jìn)4亍幀畫面顯示,即 objroleView.data=obj frame.frame 。
其中,objframe.frame為下一待播放幀的幀畫面數(shù)據(jù),該幀畫面數(shù)據(jù)為步驟 502中所獲取的幀畫面數(shù)據(jù)為幀畫面本身的數(shù)據(jù)。
當(dāng)存儲(chǔ)時(shí),通過對(duì)幀畫面的空白區(qū)域進(jìn)行切割,獲得切割后幀畫面數(shù)據(jù), 從而減小內(nèi)存的占用;當(dāng)顯示時(shí),通過計(jì)算角色變量的實(shí)際坐標(biāo),還原該角色 變量初始位置,從而準(zhǔn)確地顯示該幀畫面;并且由于幀畫面的顯示面積變小, 減少了該幀畫面融合到畫布的計(jì)算消耗。
本發(fā)明實(shí)施例通過在播放時(shí)獲取幀畫面的實(shí)際坐標(biāo)J務(wù)正角色變量在畫布 中的位置,不但節(jié)省了幀畫面存儲(chǔ)時(shí)占用的內(nèi)存空間,同時(shí)減少了幀畫面顯 示時(shí)融合到畫布的計(jì)算消耗。
本發(fā)明實(shí)施例提供一種動(dòng)畫播放的方法,其中將一個(gè)完整的動(dòng)畫序列進(jìn) 行切割存儲(chǔ),并在播放時(shí)進(jìn)行修正,如圖8所示,具體包括以下步驟 步驟801、獲取動(dòng)畫序列中的第一幀畫面。
動(dòng)畫是由一個(gè)幀序列連續(xù)播放形成的, 一個(gè)幀序列由很多個(gè)幀組成,每個(gè) 幀畫面數(shù)據(jù)是矩陣形式的位圖,并且每個(gè)幀的尺寸是一樣大的。本發(fā)明實(shí)施例 中以本動(dòng)畫序列中共由4個(gè)幀組成,并且每個(gè)幀的大小相同,為常夫見大小。該 動(dòng)畫序列完成的動(dòng)作為該動(dòng)畫角色左轉(zhuǎn)彎,先前走。
首先,獲取該動(dòng)畫序列中的第一幀,該幀的大小為常規(guī)大小,其幀畫面數(shù) 據(jù)為{frame2},如圖3所示。
步驟802、切割原始幀畫面。
13在步驟801中所獲耳又的第一幀畫面,由于未進(jìn)行空白區(qū)域切割,其大小為 120*120。但通&于圖3的觀察可知,該幀畫面內(nèi)容完全布滿了整個(gè)畫布,在畫 面內(nèi)容的上下左右都有許多空白區(qū)域。由于將這些空白區(qū)域進(jìn)行存儲(chǔ),占用了 大量的內(nèi)存;而且由于畫面較大,在動(dòng)畫顯示和場(chǎng)景融合計(jì)算時(shí),消耗大量的 CPU計(jì)算資源。因此需要將該幀畫面的空白區(qū)域切割掉,減小該幀畫面對(duì)內(nèi)存 的占用以及計(jì)算資源。
具體的,切割掉幀畫面的空白區(qū)域的具體步驟如上述步驟202所述,獲得 切割后第一幀畫面,該幀畫面數(shù)為(frame2,),以及切割后第一幀畫面相對(duì)于切 割前第一幀畫面的偏移量(fX2, fY2}。
步驟803、存儲(chǔ)切割后幀第一幀畫面以及切割后第一幀畫面位置相對(duì)于原始 幀畫面位置的偏移量。
具體的,存儲(chǔ)切割后幀第一幀畫面以及切割后第一幀幀畫面位置相對(duì)于切 割前第 一幀幀畫面位置左上方偏移量包括以下步驟
a) 根據(jù)步驟802所獲得的切割后第一幀畫面,將該切割后第一幀畫面作為 新的幀畫面進(jìn)行存儲(chǔ),替代步驟801中所獲取的切割前第一幀畫面,該切割后 第一幀畫面對(duì)應(yīng)的切割后第一幀畫面數(shù)據(jù)為{frame 2,}。
b) 存儲(chǔ)所獲得的切割后第一幀畫面位置相對(duì)于切割前第 一幀畫面位置的左 上方偏移量{僅2, fY2}與切割后第一幀畫面對(duì)應(yīng)的切割后幀畫面數(shù)據(jù){frame 2,},其存儲(chǔ)形式為(frame2,,僅2, fY2}。此時(shí),第一幀畫面由于進(jìn)行了空白區(qū) 域的切割,所以此時(shí)第一幀畫面尺寸不再是常規(guī)大小,而是小于常規(guī)大小。
步驟804、將該動(dòng)畫序列中的剩余幀進(jìn)行與第一幀同樣的空白區(qū)域切割處 理,得到處理后的該幀序列中各個(gè)幀畫面以及對(duì)應(yīng)的數(shù)據(jù),第二幀切割后的數(shù) 據(jù)為{frame 3,, fk3, fy3},第三幀切割后的數(shù)據(jù)為{frame 4,, fk4, fy4},第 四幀切割后的數(shù)據(jù)為(frame 5,, &5, fy5}}。
此時(shí),切割前幀畫面與切割后幀畫面如圖9所示。由圖9可知,通過空 白區(qū)域的切割,節(jié)省的大量的內(nèi)存空間。
步驟805、獲取^f寺纟番;改動(dòng)畫的切割后第一幀畫面對(duì)應(yīng)的角色變量的初始坐標(biāo)。角色變量的初始坐標(biāo)是該角色變量在畫布上進(jìn)行移動(dòng)時(shí)對(duì)應(yīng)的坐標(biāo)。此時(shí)
將該角色變量看^L一個(gè)點(diǎn),獲fU亥角色變量的初始坐標(biāo)為(rXl, rY2)。
需要說明的是,本發(fā)明實(shí)施例中該角色變量與畫布的相對(duì)位置只是一種優(yōu) 選實(shí)施方式,在實(shí)際的角色動(dòng)畫中,該角色變量可以位于畫布上的任意位置; 將角色變量看做一個(gè)點(diǎn)只是一種優(yōu)選實(shí)施方式,便于說明及顯示,但并不限于 此,可以選擇該角色變量對(duì)應(yīng)的幀畫面上的任一點(diǎn)為基準(zhǔn)進(jìn)行計(jì)算和顯示。 步驟806、獲取待播放動(dòng)畫的切割后第一幀的巾貞畫面數(shù)據(jù)。 獲取待播放動(dòng)畫的切割后第一幀的幀畫面數(shù)據(jù)(frame, 2},并攜帶用于修正 該幀畫面對(duì)應(yīng)的初始坐標(biāo)的左上方偏移量(僅2, fY2}。 步驟807、計(jì)算該幀畫面的實(shí)際坐標(biāo)。
步驟805中所獲取的為待4番放動(dòng)畫的切割后第一幀的幀畫面對(duì)應(yīng)的角色變 量的初始坐標(biāo),為該角色變量對(duì)應(yīng)的幀畫面未進(jìn)^f亍空白區(qū)i^切割時(shí),該角色變 量在畫布上對(duì)應(yīng)的坐標(biāo)。而步驟806中所獲取的待播放動(dòng)畫的切割后第一幀的 幀畫面數(shù)據(jù)為切割掉空白區(qū)域后的幀畫面數(shù)據(jù)。根據(jù)該角色變量的初始坐標(biāo)以 及該角色變量的切割后第一幀的幀畫面數(shù)據(jù)中所攜帶的的左上方偏移量計(jì)算第 一幀畫面的實(shí)際坐才示。
具體的,計(jì)算第一幀畫面的實(shí)際坐標(biāo)為
objroleView,rXa2 = objroleView.rX2 + objframe.&2;
objroleView.rYa2 = objroleView.rY2 + objframe.fy2;
其中,objroleView為該角色變量;objroleView.rX2和objroleView.rY2分別 為該角色變量的初始才黃坐標(biāo)和縱坐標(biāo);objframe.fic2和objframe.fy2分別為該角 色變量的幀畫面進(jìn)行空白區(qū)域切割時(shí)所得的橫縱坐標(biāo)的左上方偏移量; objroleView.rXa2和objroleView.rYa2為該角色變量的實(shí)際坐標(biāo)。
此時(shí),由于切割后第一幀畫面的顯示面積變小,因此減少了在播放時(shí)與畫 面融合的計(jì)算。
步驟808、纟番;故切割后第一幀畫面。
此時(shí),完成了對(duì)第一幀進(jìn)行修正與播放。
步驟809、將該動(dòng)畫序列中剩余幀通過進(jìn)行與第一幀相同的播放處理,并替換當(dāng)前播放幀,完成該動(dòng)畫的播放。
本發(fā)明實(shí)施例通過在播放時(shí)獲取幀畫面的實(shí)際坐標(biāo),修正角色變量在畫 布中的位置,不但節(jié)省了幀畫面存儲(chǔ)時(shí)占用的內(nèi)存空間,同時(shí)減少了幀畫面 顯示時(shí)融合到畫布的計(jì)算消耗。
本發(fā)明實(shí)施例提供一種動(dòng)畫播放的裝置10,如圖10所示,包括 第一獲^M^莫塊101,用于獲取動(dòng)畫中下一待播放幀的幀畫面以及對(duì)應(yīng)的初始
坐標(biāo)以及幀畫面的位置與原始幀畫面位置的偏移量。
其中,下一待"l番;故幀的幀畫面為經(jīng)過切割處理的幀畫面,優(yōu)選地,所述切
割處理步驟如下
1) 切割原始幀畫面,獲4尋幀畫面。
優(yōu)選地,識(shí)別原始幀畫面的非透明像素的位置;獲^f又原始幀畫面的空白區(qū) 域和非空白區(qū)域;存儲(chǔ)非空白區(qū)域,獲得幀畫面。
2) 獲取幀畫面位置相對(duì)于原始幀畫面位置的偏移量。
3) 存儲(chǔ)幀畫面和偏移量。
修正模塊102,用于根據(jù)第一獲耳^莫塊101獲取的偏移量對(duì)初始坐標(biāo)進(jìn)行修 正,獲取幀畫面的實(shí)際坐標(biāo)。
顯示模塊103,用于在修正模塊102獲取的實(shí)際坐標(biāo)顯示幀畫面。
上述步驟完成了一個(gè)幀畫面的顯示,對(duì)于一個(gè)完整的動(dòng)畫,對(duì)其所有的 幀畫面進(jìn)行同樣處理,并用下一待播放幀的幀畫面^f故上述同樣處理后,替換 當(dāng)前顯示幀畫面,完成一個(gè)動(dòng)畫的4番》欠。
本發(fā)明實(shí)施例通過在播;故時(shí)獲取幀畫面的實(shí)際坐標(biāo),修正角色變量在畫 布中的位置,不但節(jié)省了幀畫面存儲(chǔ)時(shí)占用的內(nèi)存空間,同時(shí)減少了幀畫面 顯示時(shí)融合到畫布的計(jì)算消耗。
本發(fā)明實(shí)施例提供一種動(dòng)畫播放的裝置ll,如圖ll所示,包括 第一獲^Mi塊101,用于獲取動(dòng)畫中下一待播放幀的幀畫面以及對(duì)應(yīng)的初始 坐標(biāo)以及幀畫面的位置與原始幀畫面位置的偏移量。修正模塊102,用于根據(jù)第一獲f^莫塊101獲取的偏移量對(duì)初始坐標(biāo)進(jìn)行修 正,獲耳又幀畫面的實(shí)際坐標(biāo)。
顯示模塊103,用于在修正模塊102獲取的實(shí)際坐標(biāo)顯示幀畫面。 還包括
切割模塊104,用于切割原始幀畫面,獲得幀畫面。
第二獲取模塊105,用于獲取切割模塊104獲取的幀畫面位置相對(duì)于原始幀 畫面位置的偏移量。
存儲(chǔ)模塊106,用于存儲(chǔ)切割模塊104獲取的幀畫面和第二獲取漠塊105獲 取的偏移量。
切割模塊104包括
識(shí)別子模塊1041,用于識(shí)別原始幀畫面的非透明像素的位置。 獲取子模塊1042,用于根據(jù)識(shí)別子模塊1041識(shí)別的非透明像素的位置的識(shí)
別結(jié)果獲耳又原始幀畫面的空白區(qū)域和非空白區(qū)域,非空白區(qū)域?yàn)橐?guī)則形狀或非
規(guī)則形狀。
存儲(chǔ)子模塊1043,用于存儲(chǔ)非空白區(qū)域,獲得幀畫面。 第二獲取模塊105具體用于獲取幀畫面位置相對(duì)于原始幀畫面位置的左上 方偏移量,包括
獲取幀畫面位置相對(duì)于原始幀畫面位置的橫坐標(biāo)偏移量和縱坐標(biāo)偏移量。 獲:i^黃坐標(biāo)偏移量具體為獲取原始幀畫面的左側(cè)空白區(qū)域,空白區(qū)域的
寬度為橫坐標(biāo)偏移量;
獲取縱坐標(biāo)偏移量具體為獲取原始幀畫面的上側(cè)空白區(qū)域,空白區(qū)域的 高度為縱坐標(biāo)偏移量。
本發(fā)明實(shí)施例通過在播放時(shí)獲取幀畫面的實(shí)際坐標(biāo),修正角色變量在畫 布中的位置,不但節(jié)省了幀畫面存儲(chǔ)時(shí)占用的內(nèi)存空間,同時(shí)減少了幀畫面 顯示時(shí)融合到畫布的計(jì)算消耗。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā) 明可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件, 但很多情況下前者是更佳的實(shí)施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來, 該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)終端 設(shè)備(可以是手機(jī),個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各 個(gè)實(shí)施例所述的方法。,
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普 通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn) 飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視本發(fā)明的保護(hù)范圍。
本領(lǐng)域技術(shù)人員可以理解實(shí)施例中的裝置中的模塊可以按照實(shí)施例描述 進(jìn)行分布于實(shí)施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的一
個(gè)或多個(gè)裝置中。上述實(shí)施例的模塊可以集成于一體,也可以分離部署;可
以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。 以上公開的僅為本發(fā)明的幾個(gè)具體實(shí)施例,但是,本發(fā)明并非局限于此,
任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種動(dòng)畫播放的方法,其特征在于,包括獲取動(dòng)畫中下一待播放幀的幀畫面以及對(duì)應(yīng)的初始坐標(biāo);獲取所述幀畫面的位置與原始幀畫面位置的偏移量;根據(jù)所述偏移量對(duì)所述初始坐標(biāo)進(jìn)行修正,獲取所述幀畫面的實(shí)際坐標(biāo);在所述實(shí)際坐標(biāo)顯示所述幀畫面。
2、 如權(quán)利要求l所述的方法,其特征在于,所述獲取下一待播放幀的幀畫 面以力于應(yīng)的初始坐標(biāo)之前,包括切割原始幀畫面,獲4尋所述幀畫面;獲取所述幀畫面位置相對(duì)于所述原始幀畫面位置的偏移量; 存^f諸所述幀畫面和所述偏移量。
3、 如權(quán)利要求2所述的方法,其特征在于,所述切割原始幀畫面,獲得所 述幀畫面包括識(shí)別所述原始幀畫面的非透明像素的位置;才艮據(jù)所述非透明像素的位置的識(shí)別結(jié)果獲取所述原始幀畫面的空白區(qū)域和 非空白區(qū)域,所述非空白區(qū)域?yàn)橐?guī)則形狀或非規(guī)則形狀; 存儲(chǔ)所述非空白區(qū)域,獲得所述幀畫面。
4、 如權(quán)利要求2所述的方法,其特征在于,所述獲取所述幀畫面位置相對(duì) 于所述原始幀畫面位置的偏移量為獲^f又所述幀畫面位置相對(duì)于所述原始幀畫面 位置的左上方偏移量,包括獲取所述幀畫面位置相對(duì)于所述原始幀畫面位置的橫坐標(biāo)偏移量和縱坐標(biāo)偏移量;所述獲取所述橫坐標(biāo)偏移量具體為獲取所述原始幀畫面的左側(cè)空白區(qū) 域,所述空白區(qū)域的寬度為所述橫坐標(biāo)偏移量;所述獲取所述縱坐標(biāo)偏移量具體為獲取所述原始幀畫面的上側(cè)空白區(qū) 域,所述空白區(qū)域的高度為所述縱坐標(biāo)偏移量。
5、 如權(quán)利要求1所述的方法,其特征在于,包括所述根據(jù)所述偏移量對(duì)所述初始坐標(biāo)進(jìn)行^f'務(wù)正,獲取所述幀畫面的實(shí)際坐標(biāo)為對(duì)所述初始坐標(biāo)和所述偏移量求和。
6、 如權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述原始幀畫面 為尺寸相等的幀畫面。
7、 一種動(dòng)畫播;故的裝置,其特征在于,包括第 一獲取模塊,用于獲取動(dòng)畫中下一待播放幀的幀畫面以及對(duì)應(yīng)的初始坐 標(biāo)以及所述幀畫面的位置與原始幀畫面位置的偏移量;修正模塊,用于根據(jù)所述第一獲取模塊獲取的所述偏移量對(duì)所述初始坐標(biāo) 進(jìn)行修正,獲取所述幀畫面的實(shí)際坐標(biāo);顯示模塊,用于在所述修正模塊獲取的所述實(shí)際坐標(biāo)顯示所述幀畫面。
8、 如權(quán)利要求7所述的裝置,其特征在于,還包括 切割才莫塊,用于切割原始幀畫面,獲得所述幀畫面;第二獲取模塊,用于獲取所述切割模塊獲取的所述幀畫面位置相對(duì)于所述 原始幀畫面位置的偏移量;存儲(chǔ)模塊,用于存儲(chǔ)所述切割模塊獲取的幀畫面和所述第二獲取模塊獲取 的所述偏移量。
9、 如權(quán)利要求8所述的裝置,其特征在于,所述切割模塊包括 識(shí)別子模塊,用于識(shí)別所述原始幀畫面的非透明像素的位置; 獲取子模塊,用于根據(jù)所述識(shí)別子模塊識(shí)別的所述非透明像素的位置的識(shí)別結(jié)果獲取所述原始幀畫面的空白區(qū)域和非空白區(qū)域,所述非空白區(qū)域?yàn)橐?guī)則 形狀或非規(guī)則形狀;存儲(chǔ)子模塊,用于存儲(chǔ)所述非空白區(qū)域,獲得所述幀畫面。
10、 如權(quán)利要求8所述的裝置,其特征在于,所述第二獲^^莫塊具體用于 獲取所述幀畫面位置相對(duì)于所述原始幀畫面位置的左上方偏移量,包括獲取所述幀畫面位置相對(duì)于所述原始幀畫面位置的一黃坐標(biāo)偏移量和縱坐標(biāo) 偏移量;所述獲取所述橫坐標(biāo)偏移量具體為獲取所述原始幀畫面的左側(cè)空白區(qū) 域,所述空白區(qū)域的寬度為所述橫坐標(biāo)偏移量;所述獲取所述縱坐標(biāo)偏移量具體為獲取所述原始幀畫面的上側(cè)空白區(qū) 域,所述空白區(qū)域的高度為所述縱坐標(biāo)偏移量。
全文摘要
本發(fā)明公開了一種動(dòng)畫播放的方法和裝置,該方法包括獲取動(dòng)畫中下一待播放幀的幀畫面以及對(duì)應(yīng)的初始坐標(biāo);獲取所述幀畫面的位置與原始幀畫面位置的偏移量;根據(jù)所述偏移量對(duì)所述初始坐標(biāo)進(jìn)行修正,獲取所述幀畫面的實(shí)際坐標(biāo);在所述實(shí)際坐標(biāo)顯示所述幀畫面。該裝置包括第一獲取模塊,用于獲取動(dòng)畫中下一待播放幀的幀畫面以及對(duì)應(yīng)的初始坐標(biāo)以及所述幀畫面的位置與原始幀畫面位置的偏移量;修正模塊,用于根據(jù)所述第一獲取模塊獲取的所述偏移量對(duì)所述初始坐標(biāo)進(jìn)行修正,獲取所述幀畫面的實(shí)際坐標(biāo);顯示模塊,用于在所述修正模塊獲取的所述實(shí)際坐標(biāo)顯示所述幀畫面。通過本發(fā)明,節(jié)省幀畫面存儲(chǔ)時(shí)占用的內(nèi)存空間,減少融合到畫布時(shí)的計(jì)算消耗。
文檔編號(hào)G06T13/00GK101615298SQ20091016273
公開日2009年12月30日 申請(qǐng)日期2009年8月12日 優(yōu)先權(quán)日2009年8月12日
發(fā)明者黃朝興 申請(qǐng)人:騰訊科技(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
延川县| 安丘市| 桦南县| 徐闻县| 仁布县| 镇远县| 同仁县| 平定县| 宁明县| 山丹县| 新兴县| 宜昌市| 盘山县| 顺平县| 航空| 朝阳县| 田林县| 黑龙江省| 元朗区| 顺昌县| 饶阳县| 青州市| 浮梁县| 德庆县| 莆田市| 郓城县| 荣成市| 锡林郭勒盟| 临城县| 金阳县| 兰西县| 漠河县| 边坝县| 灯塔市| 五原县| 罗山县| 阿荣旗| 南溪县| 富平县| 江北区| 山东|