提取網(wǎng)頁圖片鏈接地址代碼

提取網(wǎng)頁圖片鏈接地址代碼

ID:21943606

大?。?7.50 KB

頁數(shù):8頁

時(shí)間:2018-10-25

提取網(wǎng)頁圖片鏈接地址代碼_第1頁
提取網(wǎng)頁圖片鏈接地址代碼_第2頁
提取網(wǎng)頁圖片鏈接地址代碼_第3頁
提取網(wǎng)頁圖片鏈接地址代碼_第4頁
提取網(wǎng)頁圖片鏈接地址代碼_第5頁
資源描述:

《提取網(wǎng)頁圖片鏈接地址代碼》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、原計(jì)劃中使用過的LZW圖片壓縮算法:LZW壓縮算法是一種新穎的壓縮方法,由Lemple-Ziv-Welch三人共同創(chuàng)造,用他們的名字命名。它采用了一種先進(jìn)的串表壓縮不,將每個(gè)第一次出現(xiàn)的串放在一個(gè)串表中,用一個(gè)數(shù)字來表示串,壓縮文件只存貯數(shù)字,則不存貯串,從而使圖象文件的壓縮效率得到較大的提高。奇妙的是,不管是在壓縮還是在解壓縮的過程中都能正確的建立這個(gè)串表,壓縮或解壓縮完成后,這個(gè)串表又被丟棄。1.基本原理首先建立一個(gè)字符串表,把每一個(gè)第一次出現(xiàn)的字符串放入串表中,并用一個(gè)數(shù)字來表示,這個(gè)數(shù)字與此字符串在串表中的位置有關(guān),并將這個(gè)數(shù)字存入壓縮文件中,如果這個(gè)字符串再

2、次出現(xiàn)時(shí),即可用表示它的數(shù)字來代替,并將這個(gè)數(shù)字存入文件中。壓縮完成后將串表丟棄。如"print"字符串,如果在壓縮時(shí)用266表示,只要再次出現(xiàn),均用266表示,并將"print"字符串存入串表中,在圖象解碼時(shí)遇到數(shù)字266,即可從串表中查出266所代表的字符串"print",在解壓縮時(shí),串表可以根據(jù)壓縮數(shù)據(jù)重新生成。2.實(shí)現(xiàn)方法A.初始化串表在壓縮圖象信息時(shí),首先要建立一個(gè)字符串表,用以記錄每個(gè)第一次出現(xiàn)的字符串。一個(gè)字符串表最少由兩個(gè)字符數(shù)組構(gòu)成,一個(gè)稱為當(dāng)前數(shù)組,一個(gè)稱為前綴數(shù)組,因?yàn)樵贕IF文件中每個(gè)基本字符串的長度通常為2(但它表示的實(shí)際字符串長度可達(dá)幾百甚

3、至上千),一個(gè)基本字符串由當(dāng)前字符和它前面的字符(也稱前綴)構(gòu)成。前綴數(shù)組中存入字符串中的首字符,當(dāng)前數(shù)組存放字符串中的尾字符,其存入位置相同,因此只要確定一個(gè)下標(biāo),就可確定它所存貯的基本字符串,所以在數(shù)據(jù)壓縮時(shí),用下標(biāo)代替基本字符串。一般串表大小為4096個(gè)字節(jié)(即2的12次方),這意味著一個(gè)串表中最多能存貯4096個(gè)基本字符串,在初始化時(shí)根據(jù)圖象中色彩數(shù)目多少,將串表中起始位置的字節(jié)均賦以數(shù)字,通常當(dāng)前數(shù)組中的內(nèi)容為該元素的序號(hào)(即下標(biāo)),如第一個(gè)元素為0,第二個(gè)元素為1,第15個(gè)元素為14,直到下標(biāo)為色彩數(shù)目加2的元素為止。如果色彩數(shù)為256,則要初始化到第25

4、8個(gè)字節(jié),該字節(jié)中的數(shù)值為257。其中數(shù)字256表示清除碼,數(shù)字257為圖象結(jié)束碼。后面的字節(jié)存放文件中每一個(gè)第一次出現(xiàn)的串。同樣也要音樂會(huì)前綴數(shù)組初始化,其中各元素的值為任意數(shù),但一般均將其各位置1,即將開始位置的各元素初始化為0XFF,初始化的元素?cái)?shù)目與當(dāng)前數(shù)組相同,其后的元素則要存入每一個(gè)第一次出現(xiàn)的字符串了。如果加大串表的長度可進(jìn)一步提高壓縮效率,但會(huì)降低解碼速度。B.壓縮方法了解壓縮方法時(shí),先要了解幾個(gè)名詞,一是字符流,二是代碼流,三是當(dāng)前碼,四是當(dāng)前前綴。字符流是源圖象文件中未經(jīng)壓縮的圖象數(shù)據(jù);代碼流是壓縮后寫入GIF文件的壓縮圖象數(shù)據(jù);當(dāng)前碼是從字符流中

5、剛剛讀入的字符;當(dāng)前前綴是剛讀入字符前面的字符。GIF文件在壓縮時(shí),不論圖象色彩位數(shù)是多少,均要將顏色值按字節(jié)的單位放入代碼流中,每個(gè)字節(jié)均表示一種顏色。雖然在源圖象文件中用一個(gè)字節(jié)表示16色、4色、2色時(shí)會(huì)出現(xiàn)4位或更多位的浪費(fèi)(因?yàn)橛靡粋€(gè)字節(jié)中的4位就可以表示16色),但用LZW壓縮法時(shí)可回收字節(jié)中的空閑位。在壓縮時(shí),先從字符流中讀取第一個(gè)字符作為當(dāng)前前綴,再取第二個(gè)字符作為當(dāng)前碼,當(dāng)前前綴與當(dāng)前碼構(gòu)成第一個(gè)基本字符串(如當(dāng)前前綴為A,當(dāng)前碼為B則此字符串即為AB),查串表,此時(shí)肯定不會(huì)找到同樣字符串,則將此字符串寫入串表,當(dāng)前前綴寫入前綴數(shù)組,當(dāng)前碼寫入當(dāng)前數(shù)組

6、,并將當(dāng)前前綴送入代碼流,當(dāng)前碼放入當(dāng)前前綴,接著讀取下一個(gè)字符,該字符即為當(dāng)前碼了,此時(shí)又形成了一個(gè)新的基本字符串(若當(dāng)前碼為C,則此基本字符串為BC),查串表,若有此串,則丟棄當(dāng)前前綴中的值,用該串在串表中的位置代碼(即下標(biāo))作為當(dāng)前前綴,再讀取下一個(gè)字符作為當(dāng)前碼,形成新的基本字符串,直到整幅圖象壓縮完成。由此可看出,在壓縮時(shí),前綴數(shù)組中的值就是代碼流中的字符,大于色彩數(shù)目的代碼肯定表示一個(gè)字符串,而小于或等于色彩數(shù)目的代碼即為色彩本身。C.清除碼事實(shí)上壓縮一幅圖象時(shí),常常要對(duì)串表進(jìn)行多次初始化,往往一幅圖象中出現(xiàn)的第一次出現(xiàn)的基本字符串個(gè)數(shù)會(huì)超過4096個(gè),在

7、壓縮過程中只要字符串的長度超過了4096,就要將當(dāng)前前綴和當(dāng)前碼輸入代碼流,并向代碼流中加入一個(gè)清除碼,初始化串表,繼續(xù)按上述方法進(jìn)行壓縮。D.結(jié)束碼當(dāng)所有壓縮完成后,就向代碼流中輸出一個(gè)圖象結(jié)束碼,其值為色彩數(shù)加1,在256色文件中,結(jié)束碼為257。E.字節(jié)空間回收在GIF文件輸出的代碼流中的數(shù)據(jù),除了以數(shù)據(jù)包的形式存放之外,所有的代碼均按單位存貯,樣就有效的節(jié)省了存貯空間。這如同4位彩色(16色)的圖象,按字節(jié)存放時(shí),只能利用其中的4位,另外的4位就浪費(fèi)了,可按位存貯時(shí),每個(gè)字節(jié)就可以存放兩個(gè)顏色代碼了。事實(shí)上在GIF文件中,使用了一種可變數(shù)的存

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。