Gif圖像解碼器
上一篇LZW壓縮算法解碼器實(shí)現(xiàn)中,實(shí)現(xiàn)了lzw壓縮算法的解碼,如果完成那一步,其實(shí)gif的解碼已經(jīng)實(shí)現(xiàn)大一半了,可以說攻克了技術(shù)難點(diǎn),本文給出gif圖像文件的解碼器實(shí)現(xiàn),對(duì)算法和gif圖像有興趣的同學(xué)可以下載下去研究。注:算法需要靜下來來慢慢研究,心急氣躁,急功近利者就免了,以防走火入魔,:)
聲明:jillzhang的gif圖像解碼器有如下的特點(diǎn)
1) 解碼效率很高,高到什么地步,大體上就是說能高到頂尖水平,基本上再改善算法,也不會(huì)有數(shù)量級(jí)上的提升了。舉例來說比codeproject上NGif項(xiàng)目的解碼器效率至少高200倍以上
2) 解碼完全,按照gif的文件格式,能解析出所有的數(shù)據(jù)段,包括注釋擴(kuò)展塊,應(yīng)用程序擴(kuò)展塊,圖形文本擴(kuò)展塊,邏輯屏幕描述等。
3) 將gif文件解析的更加完全,如果你看不懂長(zhǎng)達(dá) 幾千行的其他解碼算法,你可以看看這個(gè),看完后,就知道我這個(gè)庖丁是如何解牛的了,:)
4) 完全開放源碼,而且會(huì)在后面的篇幅中逐步說明算法設(shè)計(jì)原理和實(shí)現(xiàn)思路
特別聲明:美國Unisys公司申請(qǐng)了此格式所用到核心壓縮算法LZW的專利保護(hù),在沒有向該公司交納版稅而獲得授權(quán)的前提下都不能使用GIF格式進(jìn)行創(chuàng)作和發(fā)布.但此項(xiàng)專利已經(jīng)在2003年6月20號(hào)過期了, 而Unisys也沒有繼續(xù)申請(qǐng)專利延期(估計(jì)是被罵得太狼狽, 自己也不好意思了)。所以本文研究的Gif圖像解碼是合法的,但作者仍鄭重聲明:此實(shí)現(xiàn)只用于技術(shù)研究,請(qǐng)勿用于商業(yè),否則后果自負(fù)。下載使用或者修改必須保留原作者信息:jillzhang,我在實(shí)現(xiàn)過程中也參考了NGif中的部分實(shí)現(xiàn),實(shí)現(xiàn)代碼中也有足夠的聲明。
本解碼器的一些應(yīng)用:
1) 獲取gif的每一幀圖像
2) 獲取gif圖像中的隱藏注釋信息
3) 獲取gif文件中隱藏的應(yīng)用程序擴(kuò)展信息
4) 獲取gif文件中隱藏的文本信息
5) 獲取gif文件的背景色
6) 獲取gif文件的文件頭
7) 獲取gif背景文件大小
8) 獲取gif文件的全局顏色表
解碼器項(xiàng)目源文件:
/Files/jillzhang/GifUtility.rar
目前可能出現(xiàn)的問題 :
1) Gif在編碼中有兩種數(shù)據(jù)排列方式,順序方式和交織方式。順序方式我已經(jīng)有了比較多的測(cè)試,應(yīng)該不會(huì)有問題,而交織方式的gif我一直沒有找到,所以還沒有來的急測(cè)試,可能會(huì)有異常,希望有人發(fā)現(xiàn)后,反饋給我。
出處:http://jillzhang.cnblogs.com/
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。

浙公網(wǎng)安備 33010602011771號(hào)