文件壓縮的方法及裝置的制造方法
【技術領域】
[0001] 本發明涉及數據處理領域,尤其涉及一種文件壓縮的方法及裝置。
【背景技術】
[0002] SWF(ShockWaveFlash)是一種支持矢量和點陣圖形的動畫文件格式,被廣泛應 用于網頁設計,動畫制作等領域,SWF文件通常也被稱為Flash文件。由于SWF文件包含圖 像,聲音和腳本等元素,因此其文件大小往往較大。在使用過程中出現SWF文件運行速度慢 的問題,例如頁面載入過慢或游戲安裝包解壓時間過長等問題。
[0003] 現有技術中,在減小SWF的文件大小時,采用下述方式:Flash開發人員在創作SWF 時人工對SWF中的符號、圖片進行替換,進而降低SWF的文件大小。例如:將SWF中的位圖 替換為矢量圖。由于矢量圖占用的存儲空間小于位圖占用的存儲空間,因此能夠達到減小 SWF的文件大小。
[0004] 在實現上述文件壓縮的過程中,發明人發現現有技術中至少存在如下問題:Flash 開發人員在對SWF中的圖片進行逐一替換時,需要通過第三方軟件對每一副圖片進行轉 碼,并進行人工替換操作(用轉碼后的矢量圖替換原有的位圖),文件壓縮效率低。當SWF中 的圖片較多時,將花費大量的時間進行人工替換操作。
【發明內容】
[0005] 本發明提供的一種文件壓縮的方法及裝置,能夠解決人工壓縮SWF時,文件壓縮 效率低的問題。
[0006] -方面,本發明提供了一種文件壓縮的方法,所述方法包括:
[0007] 從SWF文件的各標簽中,提取圖像數據;
[0008] 對每個圖像數據分別進行壓縮;
[0009] 將壓縮后的圖像數據存儲到各圖像數據對應的各標簽中。
[0010] 另一方面,本發明還提供了一種文件壓縮的裝置,所述裝置包括:
[0011] 提取單元,用于從SWF文件的各標簽中,提取圖像數據;
[0012] 壓縮單元,用于對提取單元提取的每個圖像數據分別進行壓縮;
[0013] 存儲單元,用于將壓縮單元壓縮后的圖像數據存儲到各圖像數據對應的各標簽 中。
[0014] 本發明提供的文件壓縮的方法及裝置,能夠從SWF文件的各標簽中,提取圖像數 據;對每個圖像數據分別進行壓縮;將壓縮后的圖像數據存儲到各圖像數據對應的各標簽 中。現有技術采用人工提取,效率低。本發明中,能夠在SWF的標簽中自動的提取出圖像數 據,在對圖像數據進行壓縮之后,自動將圖像數據回存到標簽中,進而達到對SWF文件進行 數據壓縮的效果,提高SWF文件的壓縮效率。
【附圖說明】
[0015] 為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以 根據這些附圖獲得其他的附圖。
[0016] 圖1為本發明實施例中第一個文件壓縮的方法的流程圖;
[0017] 圖2為本發明實施例中第二個文件壓縮的方法的流程圖;
[0018] 圖3為本發明實施例中SWF文件的數據格式的示意圖;
[0019] 圖4為本發明實施例中第三個文件壓縮的方法的流程圖;
[0020] 圖5為本發明實施例中第四個文件壓縮的方法的流程圖;
[0021] 圖6為本發明實施例中第五個文件壓縮的方法的流程圖;
[0022] 圖7為本發明實施例中第六個文件壓縮的方法的流程圖;
[0023] 圖8為本發明實施例中一個文件壓縮的裝置的結構示意圖;
[0024] 圖9為本發明實施例中另一個文件壓縮的裝置的結構示意圖。
【具體實施方式】
[0025] 下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于 本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他 實施例,都屬于本發明保護的范圍。
[0026] 本發明實施例提供了一種文件壓縮的方法,如圖1所示,所述方法應用于電子設 備中,所述電子設備用于運行和維護SWF文件,所述方法包括:
[0027] 步驟101、從SWF文件的各標簽中,提取圖像數據。
[0028]SWF文件具有多個標簽,每個標簽中均可包含有圖像數據。圖像數據包括JPEG圖 像和RGB位圖。
[0029] 步驟102、對每個圖像數據分別進行壓縮。
[0030] 壓縮方式可采用現有的壓縮方式,例如JPEG壓縮算法、zlib壓縮算法。
[0031] 步驟103、將壓縮后的圖像數據存儲到各圖像數據對應的各標簽中。
[0032] 如果步驟101從標簽A中提取了圖像數據,在步驟102對圖像數據進行壓縮之后, 步驟103中,將壓縮后的圖像數據"回填"到標簽A中。
[0033] 本發明實施例提供的文件壓縮的方法,能夠從SWF文件的各標簽中,提取圖像數 據;對每個圖像數據分別進行壓縮;將壓縮后的圖像數據存儲到各圖像數據對應的各標簽 中。現有技術采用人工提取,效率低。本發明中,能夠在SWF的標簽中自動的提取出圖像數 據,在對圖像數據進行壓縮之后,自動將圖像數據回存到標簽中,進而達到對SWF文件進行 數據壓縮的效果,提高SWF文件的壓縮效率。
[0034] 本發明實施例還提供了一種文件壓縮的方法,作為對圖1所示方法的進一步說 明,如圖2所示,在步驟101、從SWF文件的各標簽中,提取圖像數據。之前,所述方法還包 括:
[0035] 步驟201、讀取SWF文件頭中的壓縮算法。
[0036]SWF文件的數據格式有兩種,如圖3所示,一種由文件頭、文件屬性標簽和若干數 據標簽組成,另一種由文件頭和若干數據標簽組成,所述數據標簽用于表示SWF的數據內 容。文件頭前8個字節的數據格式如表1所示,其中,FWS為無壓縮,CWS為采用zlib壓縮, ZWS為采用LZMA壓縮,版本為SWF文件的版本,SWF文件的版本越高對運行SWF文件的應用 程序的版本要求越高。標識用于標識SWF所采用的壓縮算法。通過讀取文件頭中的標識, 能夠得到SWF所采用的壓縮算法。
[0037]表1
【主權項】
1. 一種文件壓縮的方法,其特征在于,所述方法包括: 從SWF文件的各標簽中,提取圖像數據; 對每個圖像數據分別進行壓縮; 將壓縮后的圖像數據存儲到各圖像數據對應的各標簽中。
2. 根據權利要求1所述的方法,其特征在于,在所述從SWF文件的各標簽中,提取圖像 數據的步驟之前,所述方法還包括: 讀取SWF文件頭中的壓縮算法; 根據所述壓縮算法所對應的解壓算法對SWF文件進行解壓,得到SWF文件頭和至少一 個標簽。
3. 根據權利要求2所述的方法,其特征在于,在所述將壓縮后的圖像數據存儲到各圖 像數據對應的各標簽中的步驟之后,所述方法還包括: 從至少一種預設壓縮算法中選取一種壓縮算法; 根據選取的壓縮算法對SWF文件除去文件頭前8個字節的內容進行壓縮; 將所述SWF文件頭中記載的壓縮算法,修改為選取的壓縮算法; 根據所述選取的壓縮算法更改所述SWF文件頭中的版本號。
4. 根據權利要求1所述的方法,其特征在于,所述從SWF文件的各標簽中,提取圖像數 據的步驟,包括: 讀取所述SWF中的各標簽的標簽頭; 根據所述標簽頭中表示的標簽長度,確定圖像數據的起始位置; 從所述起始位置提取圖像數據。
5. 根據權利要求4所述的方法,其特征在于,所述對每個圖像數據分別進行壓縮的步 驟,包括: 讀取所述標簽頭中表示的標簽類型; 根據所述標簽類型確定圖像數據的壓縮算法; 根據確定的壓縮算法對所述圖像數據進行壓縮。
6. 根據權利要求5所述的步驟,其特征在于,在所述根據確定的壓縮算法對所述圖像 數據進行壓縮的步驟之前,所述方法還包括: 如果所述圖像數據的數據格式為RGB圖像,則將所述RGB圖像轉換為JPEG圖像; 所述根據確定的壓縮算法對所述圖像數據進行壓縮的步驟,包括: 根據轉換后的JPEG圖像確定壓縮算法; 根據確定的壓縮算法對轉換后的JPEG圖像進行壓縮。
7. -種文件壓縮的裝置,其特征在于,所述裝置包括: 提取單元,用于從SWF文件的各標簽中,提取圖像數據; 壓縮單元,用于對提取單元提取的每個圖像數據分別進行壓縮; 存儲單元,用于將壓縮單元壓縮后的圖像數據存儲到各圖像數據對應的各標簽中。
8. 根據權利要求7所述的裝置,其特征在于,所述裝置還包括: 讀取單元,用于讀取SWF文件頭中的壓縮算法; 解壓單元,用于根據所述讀取單元讀取的所述壓縮算法所對應的解壓算法對SWF文件 進行解壓,得到SWF文件頭和至少一個標簽。
9. 根據權利要求8所述的裝置,其特征在于,所述裝置還包括: 選取單元,用于從至少一種預設壓縮算法中選取一種壓縮算法; 壓縮單元,用于根據所述選取單元選取的壓縮算法對SWF文件除去文件頭前8個字節 的內容進行壓縮; 修改單元,用于將所述SWF文件頭中記載的壓縮算法,修改為所述選取單元選取的壓 縮算法; 所述修改單元還用于根據所述選取的壓縮算法更改所述SWF文件頭中的版本號。
10. 根據權利要求7所述的裝置,其特征在于,所述提取單元還用于: 讀取所述SWF中的各標簽的標簽頭; 根據所述標簽頭中表示的標簽長度,確定圖像數據的起始位置; 從所述起始位置提取圖像數據。
11. 根據權利要求10所述的裝置,其特征在于,所述壓縮單元還用于: 讀取所述提取單元提取的所述標簽頭中表示的標簽類型; 根據所述標簽類型確定圖像數據的壓縮算法; 根據確定的壓縮算法對所述圖像數據進行壓縮。
12. 根據權利要求11所述的步驟,其特征在于,所述裝置還包括: 轉換單元,用于當所述提取單元提取的所述圖像數據的數據格式為RGB圖像時,將所 述RGB圖像轉換為JPEG圖像; 所述壓縮單元還用于: 根據轉換后的JPEG圖像確定壓縮算法; 根據確定的壓縮算法對轉換后的肝EG圖像進行壓縮。
【專利摘要】本發明公開了一種文件壓縮的方法及裝置,涉及數據處理領域。能夠解決人工壓縮SWF時,文件壓縮效率低的問題。所述方法包括:從SWF文件的各標簽中,提取圖像數據;對每個圖像數據分別進行壓縮;將壓縮后的圖像數據存儲到各圖像數據對應的各標簽中。本發明主要應用于SWF文件優化的過程中。
【IPC分類】H03M7-30
【公開號】CN104660267
【申請號】CN201310589506
【發明人】王軍, 黃飛躍, 吳永堅, 倪輝
【申請人】騰訊科技(上海)有限公司
【公開日】2015年5月27日
【申請日】2013年11月20日