本申請涉及圖像處理技術(shù)領(lǐng)域,尤其涉及一種實現(xiàn)動態(tài)圖片預(yù)覽的方法和裝置、一種表情包展示方法和裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)社交已經(jīng)成為人們生活中不可或缺的組成部分。各種社交軟件都提供了豐富多彩的表情輸入功能,以幫助人們更為生動和準(zhǔn)確的在網(wǎng)絡(luò)上表達(dá)自己的情緒。表情成為社交軟件的一大競爭力。
與靜態(tài)表情相比,更為生動有趣的動態(tài)表情更加受到人們歡迎。在使用動態(tài)表情時,通常先對一個表情包中的多個動態(tài)表情進(jìn)行預(yù)覽,然后在預(yù)覽頁面選定所要使用的動態(tài)表情?,F(xiàn)有技術(shù)中,表情包安裝文件中每個動態(tài)表情對應(yīng)于兩個文件,動態(tài)圖片和預(yù)覽圖片,分別用于動態(tài)表情的使用和預(yù)覽。也就是說,需要兩張圖片才能完成整個動態(tài)表情的使用。這樣,在制作表情包時需要準(zhǔn)備兩張圖片,工作量大,而且使得表情包安裝文件的尺寸過大,在下載時消耗較多的網(wǎng)絡(luò)流量。
技術(shù)實現(xiàn)要素:
有鑒于此,本申請?zhí)峁┮环N實現(xiàn)動態(tài)圖片預(yù)覽的方法,所述動態(tài)圖片包括若干幀靜態(tài)圖像數(shù)據(jù);所述方法包括:
從動態(tài)圖片中提取具有指定幀序號的至少一幀靜態(tài)圖像數(shù)據(jù);
對所提取的靜態(tài)圖像數(shù)據(jù)進(jìn)行展現(xiàn)。
本申請?zhí)峁┑囊环N表情包展示方法,所述表情包中具有至少一個包括若 干幀靜態(tài)圖像數(shù)據(jù)的動態(tài)表情,所述方法包括:
從要展示的動態(tài)表情中提取具有指定幀序號的至少一幀靜態(tài)圖像數(shù)據(jù);
利用所提取的靜態(tài)圖像數(shù)據(jù)展現(xiàn)所述動態(tài)表情。
本申請還提供了一種實現(xiàn)動態(tài)圖片預(yù)覽的裝置,所述動態(tài)圖片包括若干幀靜態(tài)圖像數(shù)據(jù);所述裝置包括:
圖像數(shù)據(jù)提取單元,用于從動態(tài)圖片中提取具有指定幀序號的至少一幀靜態(tài)圖像數(shù)據(jù);
圖像數(shù)據(jù)展現(xiàn)單元,用于對所提取的靜態(tài)圖像數(shù)據(jù)進(jìn)行展現(xiàn)。
本申請?zhí)峁┑囊环N表情包展示裝置,所述表情包中具有至少一個包括若干幀靜態(tài)圖像數(shù)據(jù)的動態(tài)表情,所述裝置包括:
表情數(shù)據(jù)提取單元,用于從要展示的動態(tài)表情中提取具有指定幀序號的至少一幀靜態(tài)圖像數(shù)據(jù);
表情數(shù)據(jù)展現(xiàn)單元,用于利用所提取的靜態(tài)圖像數(shù)據(jù)展現(xiàn)所述動態(tài)表情。
由以上技術(shù)方案可見,本申請的實施例中,通過提取動態(tài)圖片或動態(tài)表情中的靜態(tài)圖像數(shù)據(jù)來進(jìn)行展現(xiàn),使得實現(xiàn)對動態(tài)圖片的預(yù)覽或?qū)討B(tài)表情的展示不再需要下載預(yù)覽圖片,在應(yīng)用于表情包時能夠減小表情包安裝文件的大小,節(jié)省網(wǎng)絡(luò)流量;并且能夠降低表情包制作人員的工作量,提高表情包制作的效率。
附圖說明
圖1是本申請實施例中一種實現(xiàn)動態(tài)圖片預(yù)覽的方法的流程圖;
圖2是本申請實施例中一種表情包展示方法的流程圖;
圖3是本申請應(yīng)用示例中一種實現(xiàn)表情包中動態(tài)表情預(yù)覽的流程圖;
圖4是應(yīng)用本申請實施例的設(shè)備的一種硬件結(jié)構(gòu)圖;
圖5是本申請實施例中一種實現(xiàn)動態(tài)圖片預(yù)覽的裝置的邏輯結(jié)構(gòu)圖;
圖6是本申請實施例中一種表情包展示裝置的邏輯結(jié)構(gòu)圖。
具體實施方式
動態(tài)圖片通常是由多張不同內(nèi)容的靜態(tài)圖片組合而成,動態(tài)圖片中包括這些靜態(tài)圖片的圖像數(shù)據(jù),每張靜態(tài)圖片的圖像數(shù)據(jù)為一幀,通過逐幀順序顯示這些靜態(tài)圖像數(shù)據(jù)來展現(xiàn)出動態(tài)的效果。動態(tài)圖片的預(yù)覽圖片往往是這些靜態(tài)圖片中的一張,而這張靜態(tài)圖片的圖像數(shù)據(jù)已經(jīng)包含在動態(tài)圖片中。換言之,表情包中動態(tài)表情預(yù)覽圖片的圖像數(shù)據(jù)是重復(fù)信息,可以通過去除重復(fù)信息來減小安裝文件的大小。
本申請的實施例一提出一種新的實現(xiàn)動態(tài)圖片預(yù)覽的方法,利用動態(tài)圖片中的部分靜態(tài)圖像數(shù)據(jù)來進(jìn)行預(yù)覽,將其用于表情包的動態(tài)表情預(yù)覽時能夠在用戶的設(shè)備上利用動態(tài)表情本身實現(xiàn)預(yù)覽,從而減小表情包安裝文件的大小并減少表情包制作時的工作量,以解決現(xiàn)有技術(shù)中存在的問題。
本申請的實施例一應(yīng)用在能夠獲取到動態(tài)圖片,并要對該動態(tài)圖片進(jìn)行預(yù)覽的設(shè)備上,可以是任何具有計算和存儲功能的設(shè)備,如手機、平板電腦、PC(Personal Computer,個人電腦)、筆記本、服務(wù)器等等。本申請的實施例一中實現(xiàn)動態(tài)圖片預(yù)覽的方法的流程如圖1所示。
步驟110,從動態(tài)圖片中提取具有指定幀序號的至少一幀靜態(tài)圖像數(shù)據(jù)。
可以實時從網(wǎng)絡(luò)上獲取的動態(tài)圖片,也采用保存在設(shè)備本地的動態(tài)圖片。動態(tài)圖片中包括至少兩幀靜態(tài)圖像數(shù)據(jù),每幀靜態(tài)圖像數(shù)據(jù)有各自的幀序號,展現(xiàn)動態(tài)圖片時,按照幀序號順序顯示這些靜態(tài)圖像數(shù)據(jù)對應(yīng)的圖片即可呈現(xiàn)出動態(tài)效果。在各種現(xiàn)有的圖像處理軟件中,提供了多種從動態(tài)圖片中提取具有某個或某些幀序號的靜態(tài)圖像數(shù)據(jù)的具體實現(xiàn)方式,此處不再贅述。
本實施例中,指定幀序號可以是單個的幀序號,提取單幀的靜態(tài)圖像數(shù)據(jù),此時預(yù)覽效果是靜態(tài)的;指定幀序號也可以是兩個或兩個以上的幀序號,提取兩幀或兩幀以上靜態(tài)圖像數(shù)據(jù),此時預(yù)覽效果是動態(tài)的。
根據(jù)使用預(yù)覽圖片的應(yīng)用場景不同,指定幀序號可以通過多種方式來確定。例如,可以在滿足預(yù)定條件時(例如,需要預(yù)覽動態(tài)圖片的軟件或應(yīng)用 程序啟動運行時、用戶使用動態(tài)圖片預(yù)覽功能時等等),利用預(yù)設(shè)地址從網(wǎng)絡(luò)獲取動態(tài)圖片的下發(fā)幀序號,將下發(fā)幀序號作為指定幀序號;可以在本地保存動態(tài)圖片的內(nèi)置幀序號,以內(nèi)置幀序號作為指定幀序號(對表情包中的動態(tài)表情,可以通過在安裝文件中攜帶對應(yīng)于每個動態(tài)表情的內(nèi)置幀序號,利用安裝過程將內(nèi)置幀序號保存在本地);還可以設(shè)置默認(rèn)幀序號,以默認(rèn)幀序號作為指定幀序號。
利用預(yù)設(shè)地址從網(wǎng)絡(luò)獲取下發(fā)幀序號的方式能夠從網(wǎng)絡(luò)側(cè)集中控制動態(tài)圖片的預(yù)覽效果,無需更改每個客戶端的設(shè)置即可根據(jù)需要修改所展示的預(yù)覽圖片,但在網(wǎng)絡(luò)速度較慢時造成預(yù)覽的延遲。采用本地保存的內(nèi)置幀序號的方式能夠避免網(wǎng)絡(luò)條件對動態(tài)圖片預(yù)覽的影響,運行效率高節(jié)省流量,但需要為每個動態(tài)圖片預(yù)置對應(yīng)的內(nèi)置幀序號。采用默認(rèn)幀序號的方式同樣運行效率高節(jié)省流量,并且實現(xiàn)簡單,能夠為之前的動態(tài)圖片(既沒有網(wǎng)絡(luò)側(cè)提供下發(fā)幀序號,也沒有預(yù)置內(nèi)置幀序號的動態(tài)圖片)提供預(yù)覽實現(xiàn)上的兼容性,但往往難以準(zhǔn)確的展現(xiàn)每個動態(tài)圖片的特點。
上述三種確定指定幀序號的方式可以結(jié)合采用,以盡可能的利用不同方式的優(yōu)點并減少其缺點的影響。例如,結(jié)合內(nèi)置幀序號和默認(rèn)幀序號:在本地查找某個動態(tài)圖片的內(nèi)置幀序號,如果找到則以本地保存的該動態(tài)圖片的內(nèi)置幀序號作為指定幀序號;如果未能找到,則以默認(rèn)幀序號作為該動態(tài)圖片的指定幀序號。再如,結(jié)合下發(fā)幀序號和默認(rèn)幀序號:利用預(yù)設(shè)地址從網(wǎng)絡(luò)獲取某個動態(tài)圖片的下發(fā)幀序號,來作為該動態(tài)圖片的指定幀序號;如果未能從網(wǎng)絡(luò)獲取到該動態(tài)圖片的下發(fā)幀序號,則以默認(rèn)幀序號作為該動態(tài)圖片的指定幀序號。
一個例子中,還可以結(jié)合上述三種方式來確定指定幀序號:利用預(yù)設(shè)地址從網(wǎng)絡(luò)獲取某個動態(tài)圖片的下發(fā)幀序號,來作為指定幀序號;如果未能從網(wǎng)絡(luò)獲取到該動態(tài)圖片的下發(fā)幀序號,則以本地保存的該動態(tài)圖片的內(nèi)置幀序號作為指定幀序號;如果未找到本地保存的該動態(tài)圖片的內(nèi)置幀序號,則以默認(rèn)幀序號作為該動態(tài)圖片的指定幀序號。
由于不同的動態(tài)圖片所包括的靜態(tài)圖像幀數(shù)的差別可能非常大,可以對指定幀序號設(shè)置一定的規(guī)則,以使得設(shè)置默認(rèn)幀序號更為方便,同時能夠避免因幀序號錯誤導(dǎo)致的預(yù)覽失敗。例如,動態(tài)圖片中靜態(tài)圖像數(shù)據(jù)的幀序號通常是從1到M(M為自然數(shù))順序遞增,可以將指定幀序號的規(guī)則設(shè)置為:指定幀序號中的0和/或-1表示最后一幀;對指定幀序號中的N(N為自然數(shù)),如果N不大于動態(tài)圖片最后一幀的幀序號,則表示第N幀,大于動態(tài)圖片最后一幀的幀序號,則表示動態(tài)圖片的最后一幀。這樣,默認(rèn)幀序號可以為1來將第一幀用作預(yù)覽,可以為0或-1來將最后一幀用作預(yù)覽,還可以為(1,0)或(1,-1)來將由第一幀和最后一幀組成的動態(tài)圖片用作預(yù)覽。并且,即使發(fā)生下發(fā)幀序號、內(nèi)置幀序號或默認(rèn)幀序號超過動態(tài)圖片的最大幀數(shù)的情況,也不會導(dǎo)致無法預(yù)覽的情形出現(xiàn)。
步驟120,對所提取的靜態(tài)圖像數(shù)據(jù)進(jìn)行展現(xiàn)。
將步驟110中提取的靜態(tài)圖像數(shù)據(jù)作為預(yù)覽圖片中圖像數(shù)據(jù),展現(xiàn)給用戶?,F(xiàn)有技術(shù)中各種系統(tǒng)軟件和圖像處理應(yīng)用軟件都可以實現(xiàn)這一功能,不再贅述。
一種實現(xiàn)方式中,可以根據(jù)從某個動態(tài)圖片中提取的靜態(tài)圖像數(shù)據(jù)生成預(yù)覽圖片,并對所生成的預(yù)覽圖片進(jìn)行緩存;在對該動態(tài)圖片進(jìn)行預(yù)覽時,可以先查找緩存中是否保存有該動態(tài)圖片的預(yù)覽圖片,如果有,則展現(xiàn)緩存的預(yù)覽圖片;如果沒有,則執(zhí)行步驟110和步驟120,提取靜態(tài)圖像數(shù)據(jù)并展現(xiàn),以及根據(jù)提取的靜態(tài)圖像數(shù)據(jù)生成預(yù)覽圖片并存入緩存。
如果指定幀序號是單個的幀序號,利用提取的單幀靜態(tài)圖像數(shù)據(jù)生成的是靜態(tài)的預(yù)覽圖片;如果指定幀序號是兩個或兩個以上的幀序號,利用提取的兩幀或兩幀以上靜態(tài)圖像數(shù)據(jù)生成的是動態(tài)的預(yù)覽圖片?,F(xiàn)有的各種圖像處理軟件已經(jīng)提供了很多種利用單幀靜態(tài)圖像數(shù)據(jù)生成靜態(tài)的預(yù)覽圖片、和利用超過一幀靜態(tài)圖像數(shù)據(jù)生成動態(tài)的預(yù)覽圖片的具體實現(xiàn)方式,均可以采用,不再贅述。
在需要對動態(tài)圖片進(jìn)行預(yù)覽時,可以將緩存中該動態(tài)圖片的預(yù)覽圖片展 現(xiàn)給用戶??梢哉{(diào)用現(xiàn)有的靜態(tài)播放器來展現(xiàn)靜態(tài)的預(yù)覽圖片,調(diào)用現(xiàn)有的動態(tài)播放器來展現(xiàn)動態(tài)的預(yù)覽圖片,也可以調(diào)用既支持動態(tài)圖片又支持靜態(tài)圖片的現(xiàn)有圖片播放器來展現(xiàn)預(yù)覽圖片,本實施例中不做限定。
對非易失性存儲空間容量大的設(shè)備,可以將預(yù)覽圖片的緩存區(qū)設(shè)置在非易失性存儲器中,以減少生成預(yù)覽圖片的處理時間,提高動態(tài)圖片預(yù)覽的效率。
可見,本申請的實施例一中利用動態(tài)圖片中的靜態(tài)圖像數(shù)據(jù)來實現(xiàn)靜態(tài)或動態(tài)的預(yù)覽功能,在應(yīng)用于表情包時不再需要在安裝文件中為每個動態(tài)圖片配置對應(yīng)的預(yù)覽圖片,減小了表情包安裝文件的大小,節(jié)省了下載安裝文件所消耗的網(wǎng)絡(luò)流量;同時安裝包制作人員不再需要為每個動態(tài)表情生成預(yù)覽圖片,減少了表情包制作的工作量,提高了制作效率。
本申請的實施例二提出一種新的表情包展示方法,利用動態(tài)表情中的部分靜態(tài)圖像數(shù)據(jù)來進(jìn)行展現(xiàn)動態(tài)表情,這樣在用戶的設(shè)備上展示表情包中的表情時,利用動態(tài)表情本身即可實現(xiàn),從而減小表情包安裝文件的大小并減少表情包制作時的工作量,以解決現(xiàn)有技術(shù)中存在的問題。
本申請的實施例二應(yīng)用在下載表情包安裝文件并完成表情包的設(shè)備上,該設(shè)備可以是任何具有計算和存儲功能的設(shè)備。在表情包安裝完畢后,在用戶選擇該表情包時,該設(shè)備該設(shè)備將表情包展示給用戶,供用戶對其中的表情進(jìn)行預(yù)覽。
實施例二中,表情包安裝文件、安裝完成后該設(shè)備上的表情包文件中包括至少一個動態(tài)表情,但不包括每個動態(tài)表情對應(yīng)的預(yù)覽表情。每個動態(tài)表情都是一個動態(tài)圖片,包括至少兩幀具有各自的幀序號的靜態(tài)圖像數(shù)據(jù)。本申請的實施例二中,表情包展示方法的流程如圖2所示。
步驟210,從要展示的動態(tài)表情中提取具有指定幀序號的至少一幀靜態(tài)圖像數(shù)據(jù)。
根據(jù)表情包中表情的個數(shù)和使用表情的社交軟件的界面設(shè)計,每次展示給用戶的表情可以是表情包中的全部表情,也可以是部分表情。對要展示的 動態(tài)表情,按照指定幀序號提取至少一幀靜態(tài)圖像數(shù)據(jù)。指定幀序號可以是是單個的幀序號,來進(jìn)行表情靜態(tài)展示;指定幀序號也可以是兩個或兩個以上的幀序號,來進(jìn)行表情的動態(tài)展示。
指定幀序號可以通過多種方式來確定,可以將從網(wǎng)絡(luò)獲取的所述動態(tài)表情的下發(fā)幀序號、表情包中包括的所述動態(tài)表情的內(nèi)置幀序號、或默認(rèn)幀序號來作為指定幀序號。
對下發(fā)幀序號,可以在表情包中預(yù)置下載下發(fā)幀序號的預(yù)設(shè)地址,或者在使用表情包的社交軟件中內(nèi)置用于獲取下發(fā)幀序號的預(yù)設(shè)地址,再利用全局表情標(biāo)識(所有表情中每個表情具有的唯一標(biāo)識)或者包內(nèi)表情標(biāo)識(每個表情在所在表情包的唯一標(biāo)識)+表情包標(biāo)識(在所有表情包中的唯一標(biāo)識),來獲取每個動態(tài)表情的下發(fā)幀序號。
對內(nèi)置幀序號,可以在表情包安裝文件中包括對應(yīng)于每個動態(tài)表情的內(nèi)置幀序號,在完成表情包安裝后,在設(shè)備本地的表情包中即保存有每個動態(tài)表情的內(nèi)置幀序號。
對默認(rèn)幀序號,可以對表情包、或?qū)κ褂帽砬榘纳缃卉浖O(shè)置所使用的默認(rèn)幀序號。
可以結(jié)合上述三種幀序號來確定指定幀序號,具體而言,基于預(yù)設(shè)地址從網(wǎng)絡(luò)獲取動態(tài)表情的下發(fā)幀序號,作為指定幀序號;如果未能獲取到該動態(tài)表情的下發(fā)幀序號,則以表情包中包括的該動態(tài)表情的內(nèi)置幀序號作為指定幀序號;如果未找到該動態(tài)表情的內(nèi)置幀序號,則以默認(rèn)幀序號作為該動態(tài)表情的指定幀序號。
分別以上述三種幀序號為指定幀序號時所具有的優(yōu)缺點請參見實施例一的說明。此外,結(jié)合使用上述三種幀序號中的兩種或三種來確定指定幀序號的方式以及能達(dá)到的技術(shù)效果,也請參見實施例一。此外,本實施例中也可以對指定幀序號設(shè)置一定的規(guī)則,請參見實施例一,不再重復(fù)。
步驟220,利用所提取的靜態(tài)圖像數(shù)據(jù)展現(xiàn)該動態(tài)表情。
由于社交軟件中常常需要頻繁展示表情包,可以根據(jù)從動態(tài)表情中提取 的靜態(tài)圖像數(shù)據(jù)生成對應(yīng)于該動態(tài)表情的預(yù)覽表情,并將生成的預(yù)覽表情進(jìn)行緩存。在進(jìn)行表情包展示時,對要展示的動態(tài)表情,先在緩存中查找是否有對應(yīng)于該動態(tài)表情的預(yù)覽表情,如果有,則用對應(yīng)的預(yù)覽表情來展現(xiàn)該動態(tài)表情,如果沒有,則執(zhí)行步驟210和220,提取靜態(tài)圖像數(shù)據(jù)后展現(xiàn),并根據(jù)提取的靜態(tài)圖像數(shù)據(jù)生成預(yù)覽表情,存入緩存。
在一種實現(xiàn)方式中,可以將緩存設(shè)置在設(shè)備本地保存的表情包中,這樣,每個動態(tài)表情在第一次展現(xiàn)時生成預(yù)覽表情,以后的各次展現(xiàn)都可以直接利用預(yù)覽表情來實現(xiàn)表情包展示,從而減少設(shè)備的運算量,提高表情包展示的效率。
實施例二中利用動態(tài)表情中的靜態(tài)圖像數(shù)據(jù)來進(jìn)行表情包展示,不再需要在表情包安裝文件中為每個動態(tài)表情配置對應(yīng)的預(yù)覽表情,減小了表情包安裝文件的大小,節(jié)省了下載安裝文件所消耗的網(wǎng)絡(luò)流量;同時安裝包制作人員不再需要為每個動態(tài)表情生成預(yù)覽表情,減少了表情包制作的工作量,提高了制作效率。
在本申請的一個應(yīng)用示例中,用戶Android(安卓)終端上的社交App(應(yīng)用程序)下載并安裝一個表情包,該表情包中包括每個動態(tài)表情的動態(tài)圖片和獲取動態(tài)圖片下載幀序號的網(wǎng)絡(luò)地址,但不包括動態(tài)表情的預(yù)覽圖片。社交App為預(yù)覽圖片設(shè)置了緩存區(qū)。
當(dāng)用戶在社交App中點擊該表情包的標(biāo)簽后,應(yīng)當(dāng)在界面上顯示該表情包中若干個動態(tài)表情的預(yù)覽圖片。以其中的一個待顯示動態(tài)表情01.gif為例,本應(yīng)用示例中實現(xiàn)動態(tài)表情預(yù)覽的流程如圖3所示。
步驟301,在緩存區(qū)中查找該動態(tài)表情01.gif的預(yù)覽圖片。
步驟302,判斷是否找到,如果找到,執(zhí)行步驟303,否則轉(zhuǎn)步驟304。
步驟303,在界面上展現(xiàn)01.gif的預(yù)覽圖片,流程結(jié)束。
步驟304,獲取表情包中的網(wǎng)絡(luò)地址,向該網(wǎng)絡(luò)地址請求01.gif的下發(fā)幀序號。
步驟305,判斷在預(yù)定時間內(nèi)是否收到該網(wǎng)絡(luò)地址返回的下發(fā)幀序號, 如果是,執(zhí)行步驟306,否則轉(zhuǎn)步驟307。
步驟306,如果下發(fā)幀序號大于01.gif的最大幀序號,則以01.gif的最大幀序號為指定幀序號PreviewIndex,否則以下發(fā)幀序號為指定幀序號,轉(zhuǎn)步驟308。
步驟307,以默認(rèn)幀序號0為指定幀序號。0表示動態(tài)圖片的最后一幀靜態(tài)圖像數(shù)據(jù)。
步驟308,調(diào)用開源組件GIFDrawable將01.gif加載到內(nèi)存中,提取出具有指定幀序號的靜態(tài)圖像數(shù)據(jù)。
步驟309,將提取出的靜態(tài)圖像數(shù)據(jù)放置到安卓系統(tǒng)自帶的圖片容器ImageView中,由ImageView將靜態(tài)圖像數(shù)據(jù)展現(xiàn)給用戶,實現(xiàn)對01.gif的預(yù)覽。
步驟310,利用提取的靜態(tài)圖像數(shù)據(jù)生成01.gif的預(yù)覽文件,并將生成的預(yù)覽文件保存在緩存區(qū)中。這樣,在下次需要對01.gif進(jìn)行預(yù)覽時,可以從緩存區(qū)中讀取保存的預(yù)覽文件,直接進(jìn)行展現(xiàn)。
需要說明的是,步驟309和310之間沒有時序關(guān)系。
與上述流程實現(xiàn)對應(yīng),本申請的實施例還提供了一種實現(xiàn)動態(tài)圖片預(yù)覽的裝置。該裝置可以通過軟件實現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實現(xiàn)。以軟件實現(xiàn)為例,作為邏輯意義上的裝置,是該裝置所在的設(shè)備的CPU(Central Process Unit,中央處理器)將對應(yīng)的計算機程序指令讀取到內(nèi)存中運行形成的。從硬件層面而言,除了圖4所示的CPU、內(nèi)存以及非易失性存儲器之外,實現(xiàn)動態(tài)圖片預(yù)覽的裝置所在的設(shè)備通常還包括用于進(jìn)行無線信號收發(fā)的芯片、或用于實現(xiàn)網(wǎng)絡(luò)通信功能的板卡等其他硬件。
圖5所示為本申請實施例提供的一種實現(xiàn)動態(tài)圖片預(yù)覽的裝置,所述動態(tài)圖片包括若干幀靜態(tài)圖像數(shù)據(jù);所述裝置包括圖像數(shù)據(jù)提取單元和圖像數(shù)據(jù)展現(xiàn)單元,其中:圖像數(shù)據(jù)提取單元用于從動態(tài)圖片中提取具有指定幀序號的至少一幀靜態(tài)圖像數(shù)據(jù);圖像數(shù)據(jù)展現(xiàn)單元用于對所提取的靜態(tài)圖像數(shù)據(jù)進(jìn)行展現(xiàn)。
可選的,所述指定幀序號包括:從網(wǎng)絡(luò)獲取的所述動態(tài)圖片的下發(fā)幀序號、本地保存的所述動態(tài)圖片的內(nèi)置幀序號、或默認(rèn)幀序號。
可選的,所述裝置還可以包括指定幀序號單元,用于基于預(yù)設(shè)地址從網(wǎng)絡(luò)獲取所述動態(tài)圖片的下發(fā)幀序號,作為指定幀序號;如果未能獲取到所述動態(tài)圖片的下發(fā)幀序號,則以本地保存的所述動態(tài)圖片的內(nèi)置幀序號作為指定幀序號;如果未找到所述動態(tài)圖片的內(nèi)置幀序號,則以默認(rèn)幀序號作為所述動態(tài)圖片的指定幀序號。
可選的,所述指定幀序號中,0或-1表示所述動態(tài)圖片的最后一幀靜態(tài)圖像數(shù)據(jù);所述指定幀序號中的N如果不大于所述動態(tài)圖片的最大幀序號,則表示所述動態(tài)圖片的第N幀靜態(tài)圖像數(shù)據(jù);如果N大于所述動態(tài)圖片的最大幀序號,則表示所述動態(tài)圖片的最后一幀靜態(tài)圖像數(shù)據(jù);N為自然數(shù)。
可選的,所述裝置還可以包括預(yù)覽圖片緩存單元和預(yù)覽圖片展現(xiàn)單元,其中:預(yù)覽圖片緩存單元用于根據(jù)提取的靜態(tài)圖像數(shù)據(jù)生成預(yù)覽圖片,并緩存生成的預(yù)覽圖片;預(yù)覽圖片展現(xiàn)單元用于在對所述動態(tài)圖片進(jìn)行預(yù)覽時,如果在緩存中查找到所述動態(tài)圖片的預(yù)覽圖片,則展現(xiàn)緩存的預(yù)覽圖片。
可選的,所述動態(tài)圖片包括表情包中的動態(tài)表情;所述表情包的安裝文件中包括對應(yīng)于動態(tài)表情、用來作為指定幀序號的內(nèi)置幀序號。
圖6所示為本申請實施例提供的一種實現(xiàn)動態(tài)圖片預(yù)覽的裝置,所述表情包中具有至少一個包括若干幀靜態(tài)圖像數(shù)據(jù)的動態(tài)表情,所述裝置包括表情數(shù)據(jù)提取單元和表情數(shù)據(jù)展現(xiàn)單元,其中:表情數(shù)據(jù)提取單元用于從要展示的動態(tài)表情中提取具有指定幀序號的至少一幀靜態(tài)圖像數(shù)據(jù);表情數(shù)據(jù)展現(xiàn)單元用于利用所提取的靜態(tài)圖像數(shù)據(jù)展現(xiàn)所述動態(tài)表情。
可選的,所述指定幀序號包括:從網(wǎng)絡(luò)獲取的所述動態(tài)表情的下發(fā)幀序號、表情包中包括的所述動態(tài)表情的內(nèi)置幀序號、或默認(rèn)幀序號。
可選的,所述裝置還包括表情指定幀序號單元,用于基于預(yù)設(shè)地址從網(wǎng)絡(luò)獲取所述動態(tài)表情的下發(fā)幀序號,作為指定幀序號;如果未能獲取到所述動態(tài)圖片的下發(fā)幀序號,則以表情包中包括的所述動態(tài)表情的內(nèi)置幀序號作 為指定幀序號;如果未找到所述動態(tài)表情的內(nèi)置幀序號,則以默認(rèn)幀序號作為所述動態(tài)表情的指定幀序號。
可選的,所述裝置還包括預(yù)覽表情緩存單元和預(yù)覽表情展現(xiàn)單元,其中:預(yù)覽表情緩存單元用于根據(jù)提取的靜態(tài)圖像數(shù)據(jù)生成對應(yīng)于所述動態(tài)表情的預(yù)覽表情,并緩存生成的預(yù)覽表情;預(yù)覽表情展現(xiàn)單元用于在緩存中查找到要展示的動態(tài)表情所對應(yīng)的預(yù)覽表情時,利用所述預(yù)覽表情展現(xiàn)所述動態(tài)表情。
以上所述僅為本申請的較佳實施例而已,并不用以限制本申請,凡在本申請的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請保護的范圍之內(nèi)。
在一個典型的配置中,計算設(shè)備包括一個或多個處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內(nèi)存是計算機可讀介質(zhì)的示例。
計算機可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設(shè)備訪問的信息。按照本文中的界定,計算機可讀介質(zhì)不包括暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號和載波。
還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包 括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。
本領(lǐng)域技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、系統(tǒng)或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。