專利名稱:一種替換swf文件中的矢量圖的方法
技術領域:
本發(fā)明涉及互聯(lián)網(wǎng)應用技術領域,尤其涉及一種替換SWf文件中的矢量圖的方法。
背景技術:
當需要對swf文件修改時,通常需要對swf文件中的矢量圖進行替換,以達到修改SWf文件的目的。但是現(xiàn)有技術中,大部分都是只能查看swf文件中的矢量圖,而不能替換。即使可以通過自行編寫程序的方式來替換swf文件中的矢量圖的話,雖然實現(xiàn)了矢量圖的替換,但替換過程中破壞了原始SWf文件的屬性,致使替換后的SWf文件無法正常·使用或得到的替換結果根本不是所需要的,也就失去了替換修改的意義。而且這種自行編寫的程序無法應對所有的SWf文件,所以其具有很大的局限性。swf文件即以“· swf”結尾的文件,Swf即“shock wave flash”的縮寫,是Macromedia (現(xiàn)已被ADOBE公司收購)公司的動畫設計軟件Flash的專用格式,是一種支持矢量和點陣圖形的動畫文件格式,被廣泛應用于網(wǎng)頁設計,動畫制作等領域。
發(fā)明內容
本發(fā)明的目的在于提供一種在不破壞原始swf文件、不改變原始swf文件的前提下,替換SWf文件中的矢量圖的方法,從而解決現(xiàn)有技術中存在的前述問題。為了實現(xiàn)上述目的,本發(fā)明采用的技術方案如下一種替換swf文件中的矢量圖的方法,包括以下步驟SI,接收需要被替換矢量圖的第一源swf文件;S2,以二進制流方式讀取所述第一源swf文件;S 3,解析所述第一源swf文件的文件頭,得到所述第一源swf文件的第一文件頭
信息; S4,根據(jù)所述第一文件頭信息,解析所述第一源SWf文件中的標簽,得到第一標簽
信息;S5,根據(jù)所述第一標簽信息,定位到第一 DefineShape4標簽;S6,將用來替換的矢量圖數(shù)據(jù)覆蓋入所述第一源swf文件的所述第一DefineShape4標簽中的特定部分;S7,生成新的swf文件,完成替換。優(yōu)選的,所述特定部分是所述第一 DefineShape4標簽去除標簽頭信息、shapelD、ShapeBounds 和 EdgeBounds 后的其他部分。優(yōu)選的,S3和S4之間還包括以下步驟根據(jù)所述第一文件頭信息,判斷所述第一源swf文件是否被壓縮過;如果被壓縮過,則先對其解壓縮后再進行下一步;如果沒有被壓縮過,則直接進行下一步。
優(yōu)選的,所述矢量圖數(shù)據(jù)是通過以下步驟提取得到的數(shù)據(jù)S61,接收需要從其中提取矢量圖數(shù)據(jù)的第二源swf文件;S62,以二進制流方式讀取所述第二源swf文件;S63,解析所述第二源swf文件的文件頭,得到所述第二源swf文件的第二文件頭
信息;S64,根據(jù)所述第二文件頭信息,判斷所述第二源swf文件是否被壓縮過;如果被壓縮過,則先對其解壓縮后再進行下一步;如果沒有被壓縮過,則直接進行下一步;S65,根據(jù)所述第二文件頭信息,解析所述第二源swf文件中的標簽,得到第二標
簽信息;S 66,根據(jù)所述第二標簽信息,定位到第二 Def ineShape4標簽;S 67,取得所述第二 DefineShape4標簽中去除標簽頭信息、shape ID、ShapeBounds和EdgeBounds后的其他部分,即得到了所述矢量圖數(shù)據(jù)。本發(fā)明的有益效果是無需編程,操作簡便易懂,提高了效率和降低了處理難度。完整地保留了原始swf文件的屬性、無破壞性。
圖I是本明的步驟流程圖。
具體實施例方式為了使本發(fā)明所解決的技術問題、技術方案及有益效果更加清楚明白,以下結合附圖,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施方式
僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。下表為,swf文件的結構
權利要求
1.一種替換SWf文件中的矢量圖的方法,其特征在于,包括以下步驟 SI,接收需要被替換矢量圖的第一源swf文件; S2,以ニ進制流方式讀取所述第一源swf文件; S3,解析所述第一源swf文件的文件頭,得到所述第一源swf文件的第一文件頭信息; S4,根據(jù)所述第一文件頭信息,解析所述第一源swf文件中的標簽,得到第一標簽信息; 55,根據(jù)所述第一標簽信息,定位到第一DefineShape4標簽; 56,將用來替換的矢量圖數(shù)據(jù)覆蓋入所述第一源swf文件的所述第一Def ineShape4標簽中的特定部分; S7,生成新的swf文件,完成替換。
2.根據(jù)權利要求I所述的替換swf文件中的矢量圖的方法,其特征在于,所述特定部分是所述第一 DefineShape4標簽去除標簽頭信息、shapelD、ShapeBounds和EdgeBounds后的其他部分。
3.根據(jù)權利要求I所述的替換swf文件中的矢量圖的方法,其特征在于,S3和S4之間還包括以下步驟 根據(jù)所述第一文件頭信息,判斷所述第一源SWf文件是否被壓縮過;如果被壓縮過,則先對其解壓縮后再進行下一歩;如果沒有被壓縮過,則直接進行下一歩。
4.根據(jù)權利要求I所述的替換swf文件中的矢量圖的方法,其特征在于,所述矢量圖數(shù)據(jù)是通過以下步驟提取得到的數(shù)據(jù) S61,接收需要從其中提取矢量圖數(shù)據(jù)的第二源swf文件; S62,以ニ進制流方式讀取所述第二源swf文件; S63,解析所述第二源swf 文件的文件頭,得到所述第二源swf 文件的第二文件頭信息; .S64,根據(jù)所述第二文件頭信息,判斷所述第二源swf 文件是否被壓縮過;如果被壓縮過,則先對其解壓縮后再進行下一歩;如果沒有被壓縮過,則直接進行下一歩; .S65,根據(jù)所述第二文件頭信息,解析所述第二源swf文件中的標簽,得到第二標簽信息; .566,根據(jù)所述第二標簽信息,定位到第二DefineShape4標簽; .567,取得所述第二DefineShape4標簽中去除標簽頭信息、shapelD、ShapeBounds和EdgeBounds后的其他部分,即得到了所述矢量圖數(shù)據(jù)。
全文摘要
一種替換swf文件中的矢量圖的方法,包括步驟S1,接收需要被替換矢量圖的第一源swf文件;S2,以二進制流方式讀取所述第一源swf文件;S3,解析所述第一源swf文件的文件頭,得到所述第一源swf文件的第一文件頭信息;S4,根據(jù)所述第一文件頭信息,解析所述第一源swf文件中的標簽,得到第一標簽信息;S5,根據(jù)所述第一標簽信息,定位到第一DefineShape4標簽;S6,將用來替換的矢量圖數(shù)據(jù)覆蓋入所述第一源swf文件的所述第一DefineShape4標簽中的特定部分;S7,生成新的swf文件,完成替換。無需編程,操作簡便易懂,提高了效率和降低了處理難度。
文檔編號G06F17/30GK102789501SQ20121024801
公開日2012年11月21日 申請日期2012年7月17日 優(yōu)先權日2012年7月17日
發(fā)明者馬華亨 申請人:廈門游家網(wǎng)絡有限公司