Gif文件渲染方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種GIF文件渲染方法,包括:采用流式讀取的方法讀取GIF文件;解碼所讀取的GIF文件并獲取解碼后的幀圖片;渲染所獲取的幀圖片;判斷所獲取的幀圖片的數(shù)量是否達到預(yù)定數(shù)量,如果是,則結(jié)束渲染;否則,返回并執(zhí)行所述解碼所讀取的GIF文件并獲取解碼后的幀圖片的步驟。本發(fā)明還公開了一種GIF文件渲染裝置。與現(xiàn)有技術(shù)相比,本發(fā)明所提供的GIF文件渲染方法及裝置采用流式讀取方法讀取GIF文件,并按需進行渲染,降低了對資源的占用,提高了播放GIF動畫的效率,解決了現(xiàn)有技術(shù)中讀取GIF文件時所產(chǎn)生的資源占用過多的問題。
【專利說明】GIF文件渲染方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機【技術(shù)領(lǐng)域】,特別涉及一種GIF文件渲染方法及裝置。
【背景技術(shù)】
[0002]隨著人們對移動終端設(shè)備應(yīng)用要求的提高,在IT制造業(yè)飛速發(fā)展的今天,移動終端設(shè)備的能力已經(jīng)越來越強大,智能手機因其強大的功能而成為了目前最主流的移動終端設(shè)備。相對于普通手機,智能手機具有獨立的操作系統(tǒng),可以由用戶自行安裝應(yīng)用軟件、游戲、電郵等第三方服務(wù)商提供的應(yīng)用程序,并通過此類程序?qū)κ謾C的功能不斷進行擴充。
[0003]智能手機操作系統(tǒng)的應(yīng)用已經(jīng)涉足到很多領(lǐng)域,包括瀏覽器、各種商業(yè)軟件等,給用戶帶來很大的方便。例如,用戶可以通過智能手機在線下載或播放GIF動畫?,F(xiàn)有的播放GIF動畫的方法大部分都需要先將整個GIF文件讀取到內(nèi)存中,然后再對其進行解析二進制碼的操作,通過解碼算法得到幀圖片,最后播放幀圖片。但是上述方法必須讀取整個GIF,占用較多的資源,加上智能手機操作系統(tǒng)或者硬件本身的不足,使得在智能手機上進行GIF動畫播放變得非常困難。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于,提供一種有效的GIF文件渲染方法及裝置。
[0005]本發(fā)明的目的及解決其技術(shù)問題是采用以下技術(shù)方案來實現(xiàn)的。
[0006]一種GIF文件渲染方法,包括:采用流式讀取的方法讀取GIF文件;解碼所讀取的GIF文件并獲取解碼后的幀圖片;渲染所獲取的幀圖片;判斷所獲取的幀圖片的數(shù)量是否達到預(yù)定數(shù)量,如果是,則結(jié)束渲染;否則,返回并執(zhí)行所述解碼所讀取的GIF文件并獲取解碼后的幀圖片的步驟。
[0007]—種GIF文件渲染裝置,包括:第一讀取模塊,用于采用流式讀取的方法讀取GIF文件;解碼模塊,用于解碼所讀取的GIF文件并獲取解碼后的幀圖片;渲染模塊,用于渲染所獲取的幀圖片;第一判斷模塊,用于判斷所獲取的幀圖片的數(shù)量是否達到預(yù)定數(shù)量,如果是,則結(jié)束渲染;否則,所述解碼模塊繼續(xù)解碼所讀取的GIF文件并獲取解碼后的幀圖片。
[0008]與現(xiàn)有技術(shù)相比,本發(fā)明所提供的GIF文件渲染方法及裝置采用流式讀取方法讀取GIF文件,并按需進行渲染,降低了對資源的占用,提高了播放GIF動畫的效率,解決了現(xiàn)有技術(shù)中讀取GIF文件時所產(chǎn)生的資源占用過多的問題。
【專利附圖】
【附圖說明】
[0009]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0010]圖1是本發(fā)明實施例1提供的一種GIF文件渲染方法的流程圖。[0011]圖2是本發(fā)明實施例2提供的一種GIF文件渲染方法的流程圖。
[0012]圖3是本發(fā)明實施例3提供的一種GIF文件渲染方法的流程圖。
[0013]圖4是本發(fā)明實施例4提供的一種GIF文件渲染方法的流程圖。
[0014]圖5是本發(fā)明實施例5提供的一種GIF文件渲染裝置的結(jié)構(gòu)圖。
[0015]圖6是本發(fā)明實施例6提供的一種GIF文件渲染裝置的結(jié)構(gòu)圖。
[0016]圖7是本發(fā)明實施例7提供的一種GIF文件渲染裝置的結(jié)構(gòu)圖。
[0017]圖8是本發(fā)明實施例8提供的一種GIF文件渲染裝置的結(jié)構(gòu)圖。
【具體實施方式】
[0018]為更進一步闡述本發(fā)明為達成預(yù)定發(fā)明目的所采取的技術(shù)手段及功效,以下結(jié)合附圖及較佳實施例,對依據(jù)本發(fā)明提出的GIF文件渲染方法及裝置其【具體實施方式】、方法、步驟、結(jié)構(gòu)、特征及其功效,詳細說明如下。
[0019]有關(guān)本發(fā)明的前述及其他技術(shù)內(nèi)容、特點及功效,在以下配合參考圖式的較佳實施例的詳細說明中將可清楚呈現(xiàn)。通過【具體實施方式】的說明,當可對本發(fā)明為達成預(yù)定目的所采取的技術(shù)手段及功效得以更加深入且具體的了解,然而所附圖式僅是提供參考與說明之用,并非用來對本發(fā)明加以限制。
[0020]實施例1
[0021]參考圖1,圖1是本發(fā)明實施例1提供的一種GIF文件渲染方法的流程圖。于本實施例中,GIF文件渲染方法包括:
[0022]步驟Sll:采用流式讀取的方法讀取GIF文件。
[0023]步驟S12:解碼所讀取的GIF文件并獲取解碼后的幀圖片。
[0024]步驟S13:渲染所獲取的幀圖片。
[0025]步驟S14:判斷所獲取的幀圖片的數(shù)量是否達到預(yù)定數(shù)量,如果是,則結(jié)束渲染;否則,返回并執(zhí)行所述解碼所讀取的GIF文件并獲取解碼后的幀圖片的步驟。
[0026]與現(xiàn)有技術(shù)相比,本實施例所提供的GIF文件渲染方法采用流式讀取方法讀取GIF文件,并按需進行渲染,降低了對資源的占用,提高了播放GIF動畫的效率,解決了現(xiàn)有技術(shù)中讀取GIF文件時所產(chǎn)生的資源占用過多的問題。
[0027]實施例2
[0028]參考圖2,圖2是本發(fā)明實施例2提供的一種GIF文件渲染方法的流程圖。于本實施例中,GIF文件渲染方法包括:
[0029]步驟S21:采用流式讀取的方法讀取GIF文件。
[0030]步驟S22:解碼所讀取的GIF文件并獲取解碼后的幀圖片。
[0031]步驟S23:渲染所獲取的幀圖片。
[0032]步驟S24:判斷所獲取的幀圖片的數(shù)量是否達到預(yù)定數(shù)量,如果是,則結(jié)束渲染;否則,返回并執(zhí)行所述解碼所讀取的GIF文件并獲取解碼后的幀圖片的步驟。
[0033]與實施例1不同的是,于本實施例中,步驟S21包括:
[0034]步驟S211:獲取所述GIF文件的文件路徑。
[0035]步驟S212:移動文件指針。
[0036]步驟S213:判斷所述文件指針是否已經(jīng)到達目標位置,如果是,則讀取所述GIF文件;否則,返回并執(zhí)行所述移動文件指針的步驟。
[0037]與現(xiàn)有技術(shù)相比,本實施例所提供的GIF文件渲染方法采用流式讀取方法讀取GIF文件,并按需進行渲染,降低了對資源的占用,提高了播放GIF動畫的效率,解決了現(xiàn)有技術(shù)中讀取GIF文件時所產(chǎn)生的資源占用過多的問題。
[0038]實施例3
[0039]參考圖3,圖3是本發(fā)明實施例3提供的一種GIF文件渲染方法的流程圖。于本實施例中,GIF文件渲染方法包括:
[0040]步驟S31:采用流式讀取的方法讀取GIF文件。
[0041]步驟S32:解碼所讀取的GIF文件并獲取解碼后的幀圖片。
[0042]步驟S33:渲染所獲取的幀圖片。
[0043]步驟S34:判斷所獲取的幀圖片的數(shù)量是否達到預(yù)定數(shù)量,如果是,則結(jié)束渲染;否則,返回并執(zhí)行所述解碼所讀取的GIF文件并獲取解碼后的幀圖片的步驟。
[0044]與實施例1不同的是,于本實施例中,步驟S32包括:
[0045]步驟S321:設(shè)置特定標志位及所述特定標志位后I位的二進制內(nèi)容,所述特定標志位后I位的二進制內(nèi)容用于指示文件指針需移動的長度。特定標志位例如為0x2c。
[0046]步驟S322:讀取所讀取的GIF文件的二進制內(nèi)容,直到讀取到特定標志位。
[0047]步驟S323:讀取所述特定標志位后I位的二進制內(nèi)容。
[0048]步驟S324:判斷所述特定標志位后I位的二進制內(nèi)容是否為0,如果是,則停止解碼。
[0049]與現(xiàn)有技術(shù)相比,本實施例所提供的GIF文件渲染方法采用流式讀取方法讀取GIF文件,并按需進行渲染,降低了對資源的占用,提高了播放GIF動畫的效率,解決了現(xiàn)有技術(shù)中讀取GIF文件時所產(chǎn)生的資源占用過多的問題。
[0050]實施例4
[0051]參考圖4,圖4是本發(fā)明實施例4提供的一種GIF文件渲染方法的流程圖。于本實施例中,GIF文件渲染方法包括:
[0052]步驟S41:采用流式讀取的方法讀取GIF文件。
[0053]步驟S42:解碼所讀取的GIF文件并獲取解碼后的幀圖片。
[0054]步驟S43:渲染所獲取的幀圖片。
[0055]步驟S44:判斷所獲取的幀圖片的數(shù)量是否達到預(yù)定數(shù)量,如果是,則結(jié)束渲染;否則,返回并執(zhí)行所述解碼所讀取的GIF文件并獲取解碼后的幀圖片的步驟。
[0056]與實施例1不同的是,于本實施例中,在步驟S44中,如果判斷結(jié)果為否,則在返回并執(zhí)行所述步驟S42前,進一步包括步驟S45:開啟定時器。
[0057]定時器用于設(shè)定獲取所獲取的幀圖片中最后一幀幀圖片與獲取下一幀待獲取的幀圖片之間的時間間隔。由于獲取幀圖片后緊接著就是渲染所獲取的幀圖片的步驟,所以,當獲取所獲取的幀圖片中最后一幀幀圖片與獲取下一幀待獲取的幀圖片之間的時間間隔設(shè)定好后,每相鄰兩幀圖片渲染的時間間隔也就設(shè)定好了,這樣就可以根據(jù)實際需要對幀圖片進行渲染,控制其顯示的時間。
[0058]與現(xiàn)有技術(shù)相比,本實施例所提供的GIF文件渲染方法采用流式讀取方法讀取GIF文件,并按需進行渲染,降低了對資源的占用,提高了播放GIF動畫的效率,解決了現(xiàn)有技術(shù)中讀取GIF文件時所產(chǎn)生的資源占用過多的問題。
[0059]實施例5
[0060]參考圖5,圖5是本發(fā)明實施例5提供的一種GIF文件渲染裝置的結(jié)構(gòu)圖。于本實施例中,GIF文件渲染裝置50包括:第一讀取模塊51、解碼模塊52、渲染模塊53、第一判斷模塊54。
[0061 ] 其中,第一讀取模塊51用于采用流式讀取的方法讀取GIF文件。解碼模塊52用于解碼所讀取的GIF文件并獲取解碼后的幀圖片。渲染模塊53用于渲染所獲取的幀圖片。第一判斷模塊54用于判斷所獲取的幀圖片的數(shù)量是否達到預(yù)定數(shù)量,如果是,則結(jié)束渲染;否則,所述解碼模塊52繼續(xù)解碼所讀取的GIF文件并獲取解碼后的幀圖片。
[0062]與現(xiàn)有技術(shù)相比,本實施例所提供的GIF文件渲染裝置采用流式讀取方法讀取GIF文件,并按需進行渲染,降低了對資源的占用,提高了播放GIF動畫的效率,解決了現(xiàn)有技術(shù)中讀取GIF文件時所產(chǎn)生的資源占用過多的問題。
[0063]實施例6
[0064]參考圖6,圖6是本發(fā)明實施例6提供的一種GIF文件渲染裝置的結(jié)構(gòu)圖。于本實施例中,GIF文件渲染裝置60包括:第一讀取模塊61、解碼模塊62、渲染模塊63、第一判斷模塊64。
[0065]與實施例5不同的是,于本實施例中,第一讀取模塊61包括:路徑獲取模塊611,用于獲取所述GIF文件的文件路徑;指針移動模塊612,用于移動文件指針;第二判斷模塊613,用于判斷所述文件指針是否已經(jīng)到達目標位置,如果是,則讀取所述GIF文件;否則,所述指針移動模塊612繼續(xù)移動所述文件指針。
[0066]與現(xiàn)有技術(shù)相比,本實施例所提供的GIF文件渲染裝置采用流式讀取方法讀取GIF文件,并按需進行渲染,降低了對資源的占用,提高了播放GIF動畫的效率,解決了現(xiàn)有技術(shù)中讀取GIF文件時所產(chǎn)生的資源占用過多的問題。
[0067]實施例7
[0068]參考圖7,圖7是本發(fā)明實施例7提供的一種GIF文件渲染裝置的結(jié)構(gòu)圖。于本實施例中,GIF文件渲染裝置70包括:第一讀取模塊71、解碼模塊72、渲染模塊73、第一判斷模塊74。
[0069]與實施例5不同的是,于本實施例中,解碼模塊72包括:設(shè)置模塊721,用于設(shè)置特定標志位及所述特定標志位后I位的二進制內(nèi)容,所述特定標志位后I位的二進制內(nèi)容用于指示文件指針需移動的長度;第二讀取模塊722,用于讀取所讀取的GIF文件的二進制內(nèi)容,直到讀取到特定標志位;第三讀取模塊723,用于讀取所述特定標志位后I位的二進制內(nèi)容;第三判斷模塊724,用于判斷所述特定標志位后I位的二進制內(nèi)容是否為0,如果是,則停止解碼。
[0070]與現(xiàn)有技術(shù)相比,本實施例所提供的GIF文件渲染裝置采用流式讀取方法讀取GIF文件,并按需進行渲染,降低了對資源的占用,提高了播放GIF動畫的效率,解決了現(xiàn)有技術(shù)中讀取GIF文件時所產(chǎn)生的資源占用過多的問題。
[0071]實施例8
[0072]參考圖8,圖8是本發(fā)明實施例8提供的一種GIF文件渲染裝置的結(jié)構(gòu)圖。于本實施例中,GIF文件渲染裝置80包括:第一讀取模塊81、解碼模塊82、渲染模塊83、第一判斷模塊84。與實施例5不同的是,于本實施例中,裝置80進一步包括計時模塊85。計時模塊85用于設(shè)定獲取所獲取的幀圖片中最后一幀幀圖片與獲取下一幀待獲取的幀圖片之間的時間間隔。
[0073]與現(xiàn)有技術(shù)相比,本實施例所提供的GIF文件渲染裝置采用流式讀取方法讀取GIF文件,并按需進行渲染,降低了對資源的占用,提高了播放GIF動畫的效率,解決了現(xiàn)有技術(shù)中讀取GIF文件時所產(chǎn)生的資源占用過多的問題。
[0074]需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于裝置類實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
[0075]需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。
[0076]本領(lǐng)域 普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,該的程序可以存儲于一種計算機可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
[0077]以上該僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種GIF文件渲染方法,其特征在于,包括: 采用流式讀取的方法讀取GIF文件; 解碼所讀取的GIF文件并獲取解碼后的幀圖片; 渲染所獲取的幀圖片; 判斷所獲取的幀圖片的數(shù)量是否達到預(yù)定數(shù)量,如果是,則結(jié)束渲染;否則,返回并執(zhí)行所述解碼所讀取的GIF文件并獲取解碼后的幀圖片的步驟。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述采用流式讀取的方法讀取GIF文件的步驟,包括: 獲取所述GIF文件的文件路徑; 移動文件指針; 判斷所述文件指針是否已經(jīng)到達目標位置,如果是,則讀取所述GIF文件;否則,返回并執(zhí)行所述移動文件指針的步驟。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述解碼所讀取的GIF文件并獲取解碼后的幀圖片的步驟,包括: 設(shè)置特定標志位及所述特定標志位后I位的二進制內(nèi)容,所述特定標志位后I位的二進制內(nèi)容用于指示文件指針需移動的長度; 讀取所讀取的GIF文件的二進制內(nèi)容,直到讀取到特定標志位; 讀取所述特定標志位后I位的二進制內(nèi)容; 判斷所述特定標志位后I位的二進制內(nèi)容是否為O,如果是,則停止解碼。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述判斷所獲取的幀圖片的數(shù)量是否達到預(yù)定數(shù)量的步驟中,如果判斷結(jié)果為否,則在返回并執(zhí)行所述解碼所讀取的GIF文件并獲取解碼后的幀圖片的步驟前,進一步包括開啟定時器的步驟,所述定時器用于設(shè)定獲取所獲取的幀圖片中最后一幀幀圖片與獲取下一幀待獲取的幀圖片之間的時間間隔。
5.一種GIF文件渲染裝置,其特征在于,包括: 第一讀取模塊,用于采用流式讀取的方法讀取GIF文件; 解碼模塊,用于解碼所讀取的GIF文件并獲取解碼后的幀圖片; 渲染模塊,用于渲染所獲取的幀圖片; 第一判斷模塊,用于判斷所獲取的幀圖片的數(shù)量是否達到預(yù)定數(shù)量,如果是,則結(jié)束渲染;否則,所述解碼模塊繼續(xù)解碼所讀取的GIF文件并獲取解碼后的幀圖片。
6.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述第一讀取模塊,包括: 路徑獲取模塊,用于獲取所述GIF文件的文件路徑; 指針移動模塊,用于移動文件指針; 第二判斷模塊,用于判斷所述文件指針是否已經(jīng)到達目標位置,如果是,則讀取所述GIF文件;否則,所述指針移動模塊繼續(xù)移動所述文件指針。
7.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述解碼模塊,包括: 設(shè)置模塊,用于設(shè)置特定標志位及所述特定標志位后I位的二進制內(nèi)容,所述特定標志位后I位的二進制內(nèi)容用于指示文件指針需移動的長度; 第二讀取模塊,用于讀取所讀取的GIF文件的二進制內(nèi)容,直到讀取到特定標志位; 第三讀取模塊,用于讀取所述特定標志位后I位的二進制內(nèi)容;第三判斷模塊,用于判斷所述特定標志位后I位的二進制內(nèi)容是否為O,如果是,則停止解碼。
8.根據(jù)權(quán)利要求1所述的裝置,其特征在于,進一步包括計時模塊,所述計時模塊用于設(shè)定獲取所獲取的 幀圖片中最后一幀幀圖片與獲取下一幀待獲取的幀圖片之間的時間間隔。
【文檔編號】G06T13/00GK103810738SQ201210457508
【公開日】2014年5月21日 申請日期:2012年11月14日 優(yōu)先權(quán)日:2012年11月14日
【發(fā)明者】譚志遠, 譚正誼 申請人:騰訊科技(深圳)有限公司