專利名稱:一種bmp圖片文件的壓縮、解壓縮方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于圖像處理技術(shù)領(lǐng)域,尤其涉及一種BMP圖片文件的壓縮、解 壓縮方法及系統(tǒng)。
背景技術(shù):
目前,許多應(yīng)用程序中都需要使用大量圖片,例如圖形化的用戶交互界 面,并且隨著各種應(yīng)用程序的發(fā)展,其對(duì)圖片大小的要求也越來(lái)越嚴(yán)格。由于 不經(jīng)過(guò)壓縮的BMP圖片占用存儲(chǔ)空間較大,尤其在嵌入式系統(tǒng)中,存儲(chǔ)空間 極為有限,因此, 一般都會(huì)對(duì)這些圖片進(jìn)行壓縮。目前,使用最多的圖片壓縮 方式為JPEG壓縮,即壓縮后的文件為JPG文件。
JPEG ( Joint Photographic Experts Group )是一個(gè)由ISO和IEC兩個(gè)組織才幾 構(gòu)聯(lián)合組成的一個(gè)專家組,負(fù)責(zé)制定靜態(tài)的數(shù)字圖像數(shù)據(jù)壓縮編碼標(biāo)準(zhǔn),這個(gè) 專家組開(kāi)發(fā)的算法稱為JPEG算法,并且成為國(guó)際上通用的標(biāo)準(zhǔn),因此又稱為 JPEG標(biāo)準(zhǔn)。JPEG標(biāo)準(zhǔn)是一個(gè)適用范圍很廣的靜態(tài)圖像數(shù)據(jù)壓縮標(biāo)準(zhǔn),既可用 于灰度圖像又可用于彩色圖像。JPEG專家組開(kāi)發(fā)了兩種基本的壓縮算法, 一種 是采用以離散余弦變換(Discrete Cosine Transform, DCT)為基礎(chǔ)的有損壓縮 算法,另一種是采用以預(yù)測(cè)技術(shù)為基礎(chǔ)的無(wú)損壓縮算法。使用有損壓縮算法時(shí), 在壓縮比為25:1的情況下,壓縮后還原得到的圖像與原始圖像相比較,非圖像 專家難于找出它們之間的區(qū)別,因此得到了廣泛的應(yīng)用。雖然利用JPEG算法 可以對(duì)BMP圖片文件進(jìn)行壓縮,但該壓縮方法及其對(duì)應(yīng)的解壓縮方法的算法 較為復(fù)雜,運(yùn)算量較大
發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的在于提供一種BMP圖片文件的壓縮方法,旨在解決
現(xiàn)有的壓縮方法的算法較復(fù)雜,運(yùn)算量大的問(wèn)題。
本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的, 一種BMP圖片文件的壓縮方法,所述壓縮
方法包括以下步驟
讀取BMP圖片文件的位圖文件頭,位圖信息頭及顏色表;
將所述位圖文件頭,位圖信息頭及顏色表寫(xiě)入壓縮文件;
順序地讀取BMP圖像文件的位圖數(shù)據(jù),將圖像象素的顏色值及其對(duì)應(yīng)的
Num值寫(xiě)入壓縮文件,并且在寫(xiě)入連續(xù)多個(gè)相同的顏色值時(shí),只寫(xiě)入其中一個(gè)
顏色值及對(duì)應(yīng)的Num值,其中,Num為連續(xù)相同的顏色值的個(gè)數(shù)。
本發(fā)明實(shí)施例的另一目的在于提供一種BMP圖片文件的壓縮系統(tǒng),所述
壓縮系統(tǒng)包才舌
BMP圖片文件讀取模塊,用于讀取BMP圖片文件的位圖文件頭,位圖信 息頭及顏色表;
壓縮文件寫(xiě)入模塊,用于將所述位圖文件頭,位圖信息頭及顏色表寫(xiě)入壓 縮文件;以及
位圖數(shù)據(jù)壓縮模塊,用于順序地讀取BMP圖像文件的位圖數(shù)據(jù),將圖像 象素的顏色值及其對(duì)應(yīng)的Num值寫(xiě)入壓縮文件,并且在寫(xiě)入連續(xù)多個(gè)相同的顏 色值時(shí),只寫(xiě)入其中一個(gè)顏色值及對(duì)應(yīng)的Num值,其中,Num為連續(xù)相同的 顏色值的個(gè)數(shù)。
本發(fā)明實(shí)施例的另一目的在于提供一種BMP圖片的解壓縮方法,所述解
壓縮方法包括以下步驟
讀取壓縮文件的位圖文件頭,位圖信息頭及顏色表; 將所述位圖文件頭,位圖信息頭及顏色表寫(xiě)入BMP圖片文件; 順序地讀取壓縮文件位圖數(shù)據(jù)的圖像象素的顏色值及Num值,并將所述圖
像象素的顏色值寫(xiě)入BMP圖片文件Num次,其中,Num為連續(xù)相同的圖像象
素顏色值的個(gè)數(shù)。本發(fā)明實(shí)施例的另一目的在于提供一種BMP圖片的解壓縮系統(tǒng),所述解 壓縮系統(tǒng)包括
壓縮文件讀取模塊,用于讀取壓縮文件的位圖文件頭,位圖信息頭及顏色
表;
BMP圖片文件寫(xiě)入模塊,用于將所述位圖文件頭,位圖信息頭及顏色表寫(xiě) 入BMP圖片文件;以及
位圖數(shù)據(jù)解壓縮模塊,用于順序地讀取壓縮文件位圖數(shù)據(jù)的圖像象素的顏 色值及Num值,并將所述圖〗象象素的顏色值寫(xiě)入BMP圖片文件Num次,Num 為連續(xù)相同的圖像象素顏色值的個(gè)數(shù)。
在本發(fā)明的實(shí)施例中,不改變BMP圖片文件的位圖文件頭,位圖信息圖 及顏色表,而對(duì)于BMP圖片文件中位圖數(shù)據(jù)部分的連續(xù)相同的圖像象素的顏 色值,僅將其中一個(gè)圖像象素的顏色值及將連續(xù)相同的圖像象素的個(gè)數(shù)寫(xiě)入壓 縮文件,從而達(dá)到了壓縮BMP圖片的目的,并且該壓縮方法的算法較為簡(jiǎn)單, 運(yùn)算量較小。
圖1是本發(fā)明實(shí)施例提供的BMP圖片文件的壓縮方法的實(shí)施流程圖; 圖2是本發(fā)明實(shí)施例提供的BMP圖片文件的解壓縮方法的實(shí)施流程圖; 圖3是本發(fā)明實(shí)施例提供的BMP圖片文件的壓縮、解壓縮系統(tǒng)的結(jié)構(gòu)示 意圖。
具體實(shí)施例方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí) 施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅 僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
在本發(fā)明的實(shí)施例中,不改變BMP圖片文件的位圖文件頭,位圖信息圖及顏色表的數(shù)據(jù),而對(duì)于BMP圖片文件中位圖數(shù)據(jù)部分的連續(xù)相同的圖像象 素的顏色值,僅將其中 一個(gè)圖像象素的顏色值及將連續(xù)相同的圖像象素的個(gè)數(shù) 寫(xiě)入壓縮文件,從而達(dá)到了壓縮BMP圖片的目的,并且該壓縮方法的算法較 為簡(jiǎn)單,運(yùn)算量較小。
圖1示出了本發(fā)明實(shí)施例提供的BMP圖片文件的壓縮方法的實(shí)施流程, 詳述如下
在步驟S101中,讀取BMP圖片文件的位圖文件頭、位圖信息頭、顏色表。 在步驟S102中,將該位圖文件頭,位圖信息頭及顏色表寫(xiě)入壓縮文件。 在步驟S103中,讀取BMP文件中位圖數(shù)據(jù)的第i個(gè)圖像象素的顏色值,
并置Num的值為l。其中,使用參數(shù)Num來(lái)記錄連續(xù)相同的圖像象素的顏色
值的個(gè)數(shù),并且i的初始值為l。
在步驟S104中,判斷是否存在第i+l個(gè)圖像象素。當(dāng)不存在第i+l個(gè)圖像
象素時(shí),執(zhí)行步驟S105;當(dāng)存在第i+l個(gè)圖像象素時(shí),執(zhí)行步驟S106。
在步驟S105中,將第i個(gè)圖像象素的顏色值,及對(duì)應(yīng)的Num值寫(xiě)入壓縮
文件。當(dāng)不存在第i+l個(gè)圖像象素時(shí),說(shuō)明第i個(gè)圖像象素是位圖數(shù)據(jù)的最后
一個(gè)象素,此時(shí),將第i個(gè)圖像象素的顏色值,及連續(xù)相同(與第i個(gè)圖像象素
相同)的圖像象素的顏色值個(gè)數(shù)值Num寫(xiě)入壓縮文件,壓縮文件生成完畢,結(jié)
束整個(gè)流程。
在步驟S106中,讀取第i+l個(gè)圖像象素的顏色值。
在步驟S107中,判斷第i+l個(gè)圖像象素的顏色值與第i個(gè)圖像象素的顏色 值是否相同。當(dāng)顏色值不相同時(shí),執(zhí)行步驟S108;當(dāng)顏色值相同時(shí),執(zhí)行步驟 S109。
在步驟S108中,將第i個(gè)圖像象素的顏色值,及對(duì)應(yīng)的Num值寫(xiě)入壓縮 文件,并使i的值增加l。執(zhí)行完步驟S108后,返回執(zhí)行步驟S103。
在步驟S109中,使Num的值增加l, i的值增加l。執(zhí)行完步驟S109后, 返回執(zhí)行步驟S104。為了便于理解,下面以24bit真彩色位圖的BMP圖片為例,作簡(jiǎn)要說(shuō)明, 當(dāng)然,8bit、 16bit及其他位圖的BMP圖片也可以4吏用本發(fā)明實(shí)施例提供的方法。 在24bit真彩色位圖的位圖數(shù)據(jù)中,每個(gè)點(diǎn)的顏色由3個(gè)字節(jié)表示,分別為R、 G、 B,圖像的每一掃描行由表示圖像象素的連續(xù)的字節(jié)組成。對(duì)于BMP圖片 位圖數(shù)據(jù)中的連續(xù)多個(gè)具有相同R、 G、 B值的圖像象素(即位圖數(shù)據(jù)中連續(xù)多 個(gè)相同字節(jié)組),壓縮文件僅記錄一個(gè)圖像象素的R、 G、 B值,并增加l個(gè)字 節(jié)參數(shù)Num,用Num記錄下連續(xù)相同的圖像象素顏色值的個(gè)數(shù)。例如 一個(gè) BMP圖片中有連續(xù)4個(gè)圖像象素的顏色值都為(100、 101、 102),即R為IOO, G為lOl, B為102;在BMP圖片中位圖數(shù)據(jù)的記錄方式為100、 101、 102、 100、 101、 102、 100、 101、 102、 100、 101、 102,共需要12個(gè)字節(jié)表示,而 壓縮文件的記錄方式為100、 101、 102、 4,共4個(gè)字節(jié)。因此,具有相同的 顏色值的相鄰圖像象素越多,壓縮比越高。
圖2示出了本發(fā)明實(shí)施例提供的BMP圖片文件的解壓縮方法的實(shí)施流程, 詳述如下
在步驟S201中,讀取壓縮文件的位圖文件頭、位圖信息頭、顏色表。 在步驟S202中,將該位圖文件頭,位圖信息頭及顏色表寫(xiě)入BMP文件。 在步驟S203中,順序地讀取壓縮文件的圖l象象素的顏色值及其對(duì)應(yīng)的Num
值。為了能方便順序讀取,作為本發(fā)明的實(shí)施例,可以用一指示器指示當(dāng)前的
讀取位置,在讀取之前,該指示器指示壓縮文件的第一個(gè)圖像象素。 在步驟S204中,將該圖像象素的顏色值寫(xiě)入BMP文件Num次。 在步驟S205中,判斷下一個(gè)圖像象素是否存在。當(dāng)不存在時(shí),說(shuō)明解壓縮
完畢,結(jié)束整個(gè)流程。當(dāng)存在下一個(gè)圖像象素時(shí),返回執(zhí)行步驟S203,此時(shí),
需要使指示器指示下一個(gè)圖像象素。
圖3示出了本發(fā)明實(shí)施例提供的BMP圖片文件的壓縮、解壓縮系統(tǒng)的結(jié)
構(gòu),該系統(tǒng)包括壓縮單元及解壓縮單元。
在壓縮單元31對(duì)BMP圖片文件進(jìn)行壓縮的過(guò)程中,BMP圖片文件讀取模塊311讀取BMP圖片文件的位圖文件頭,位圖信息頭及顏色表。壓縮文件寫(xiě)入 模塊312將該位圖文件頭,位圖信息頭及顏色表寫(xiě)入壓縮文件。位圖數(shù)據(jù)壓縮 模塊313順序地讀取BMP圖像文件的位圖數(shù)據(jù),將圖像象素的顏色值及其對(duì) 應(yīng)的Num值寫(xiě)入壓縮文件,并且在寫(xiě)入連續(xù)多個(gè)相同的顏色值時(shí),只寫(xiě)入其中 一個(gè)顏色值及對(duì)應(yīng)的Num值,其中,Num為連續(xù)相同的顏色值的個(gè)數(shù)。
在解壓縮單元32對(duì)壓縮文件進(jìn)行解壓縮的過(guò)程中,壓縮文件讀取模塊321 讀取壓縮文件的位圖文件頭,位圖信息頭及顏色表。BMP圖片文件寫(xiě)入模塊 322將該位圖文件頭,位圖信息頭及顏色表寫(xiě)入BMP圖片文件。位圖數(shù)據(jù)解壓 縮模塊323順序地讀取壓縮文件位圖數(shù)據(jù)的圖像象素的顏色值及Num值,并將 該圖像象素的顏色值寫(xiě)入BMP圖片文件Num次。
在本發(fā)明的實(shí)施例中,不改變BMP圖片文件的位圖文件頭,位圖信息圖 及顏色表的數(shù)據(jù),而對(duì)于BMP圖片文件中位圖數(shù)據(jù)部分的連續(xù)相同的圖像象 素的顏色值,僅將其中一個(gè)圖像象素的顏色值及將連續(xù)相同的圖像象素的個(gè)數(shù) 寫(xiě)入壓縮文件,從而達(dá)到了壓縮BMP圖片的目的,并且該壓縮方法的算法較 為簡(jiǎn)單,運(yùn)算量較小。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā) 明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明 的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種BMP圖片文件的壓縮方法,其特征在于,所述壓縮方法包括以下步驟讀取BMP圖片文件的位圖文件頭,位圖信息頭及顏色表;將所述位圖文件頭,位圖信息頭及顏色表寫(xiě)入壓縮文件;順序地讀取BMP圖像文件的位圖數(shù)據(jù),將圖像象素的顏色值及其對(duì)應(yīng)的Num值寫(xiě)入壓縮文件,并且在寫(xiě)入連續(xù)多個(gè)相同的顏色值時(shí),只寫(xiě)入其中一個(gè)顏色值及對(duì)應(yīng)的Num值,其中,Num為連續(xù)相同的顏色值的個(gè)數(shù)。
2、 一種BMP圖片文件的壓縮系統(tǒng),其特征在于,所述壓縮系統(tǒng)包括 BMP圖片文件讀^f莫塊,用于讀取BMP圖片文件的位圖文件頭,位圖信息頭及顏色表;壓縮文件寫(xiě)入模塊,用于將所述位圖文件頭,位圖信息頭及顏色表寫(xiě)入壓 縮文〗牛;以及位圖數(shù)據(jù)壓縮模塊,用于順序地讀取BMP圖像文件的位圖數(shù)據(jù),將圖像 象素的顏色值及其對(duì)應(yīng)的Num值寫(xiě)入壓縮文件,并且在寫(xiě)入連續(xù)多個(gè)相同的顏 色值時(shí),只寫(xiě)入其中一個(gè)顏色值及對(duì)應(yīng)的Num值,其中,Num為連續(xù)相同的 顏色值的個(gè)數(shù)。
3、 一種BMP圖片文件的解壓縮方法,其特征在于,所述解壓縮方法包括 以下步驟讀取壓縮文件的位圖文件頭,位圖信息頭及顏色表; 將所述位圖文件頭,位圖信息頭及顏色表寫(xiě)入BMP圖片文件; 順序地讀取壓縮文件位圖數(shù)據(jù)的圖像象素的顏色值及Num值,并將所述圖像象素的顏色值寫(xiě)入BMP圖片文件Num次,其中,Num為連續(xù)相同的圖像象素顏色值的個(gè)數(shù)。
4、 一種BMP圖片文件的解壓縮系統(tǒng),其特征在于,所述解壓縮系統(tǒng)包括 壓縮文件讀取模塊,用于讀取壓縮文件的位圖文件頭,位圖信息頭及顏色表;BMP圖片文件寫(xiě)入模塊,用于將所述位圖文件頭,位圖信息頭及顏色表寫(xiě) 入BMP圖片文件;以及位圖數(shù)據(jù)解壓縮模塊,用于順序地讀取壓縮文件位圖數(shù)據(jù)的圖像象素的顏 色值及Num值,并將所迷圖像象素的顏色值寫(xiě)入BMP圖片文件Num次,Num 為連續(xù)相同的圖像象素顏色值的個(gè)數(shù)。
全文摘要
本發(fā)明適用于一種圖像處理技術(shù)領(lǐng)域,提供了一種BMP圖片文件的壓縮、解壓縮方法及系統(tǒng),所述壓縮方法包括以下步驟讀取BMP圖片文件的位圖文件頭,位圖信息頭及顏色表;將所述位圖文件頭,位圖信息頭及顏色表寫(xiě)入壓縮文件;順序地讀取BMP圖像文件的位圖數(shù)據(jù),將圖像象素的顏色值及其對(duì)應(yīng)的Num值寫(xiě)入壓縮文件,并且在寫(xiě)入連續(xù)多個(gè)相同的顏色值時(shí),只寫(xiě)入其中一個(gè)顏色值及對(duì)應(yīng)的Num值,其中,Num為連續(xù)相同的顏色值的個(gè)數(shù)。該壓縮方法不僅能達(dá)到壓縮BMP圖片的目的,并且該壓縮方法的算法較為簡(jiǎn)單,運(yùn)算量較小。
文檔編號(hào)G06T9/00GK101546434SQ20081006637
公開(kāi)日2009年9月30日 申請(qǐng)日期2008年3月28日 優(yōu)先權(quán)日2008年3月28日
發(fā)明者朱周姒 申請(qǐng)人:深圳市同洲電子股份有限公司