專利名稱:一種png圖片的壓縮方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像壓縮領(lǐng)域,尤其涉及一種PNG圖片的壓縮方法。
背景技術(shù):
隨著多媒體和通信技術(shù)的快速發(fā)展,多媒體信息的傳輸對數(shù)據(jù)的存儲和傳輸提出了更高的要求,也給現(xiàn)有的有限帶寬以嚴(yán)峻的考驗,特別是具有龐大數(shù)據(jù)量的數(shù)字圖像通信,更難以傳輸和存儲,極大地制約了圖像通信的發(fā)展。對于一個網(wǎng)站而言,頁面的開啟速度是至關(guān)重要的。它不僅直接影響到該網(wǎng)站在搜索引擎中的排名參數(shù),更為重要的是,會減緩訪客的頁面開啟速度。圖像壓縮的目的就是把原來較大的圖像用盡量少的字節(jié)表示和傳輸,并且要求復(fù)原圖像有較好的質(zhì)量。利用圖像壓縮,可以減輕圖像存儲和傳輸?shù)呢?fù)擔(dān),使圖像在網(wǎng)絡(luò)上實現(xiàn)快速傳輸和實時處理。在開發(fā)手機游戲的過程中,PNG圖片可以說是最常用的圖片格式,于是,如何讓PNG格式圖片的壓縮發(fā)揮到極致就會顯得尤為重要。PNG圖片一般來說都比較小,但是它也會因為包含很多無謂的數(shù)據(jù)塊而變大。本發(fā)明通過將源圖片轉(zhuǎn)換為PNG格式圖片,并通過刪除不必要的數(shù)據(jù)塊來將PNG文件壓縮到最完美的狀態(tài)。
發(fā)明內(nèi)容
為了實現(xiàn)PNG圖片更好的的壓縮率,本發(fā)明提供一種PNG圖片的壓縮方法的設(shè)計方案。一種PNG圖片的壓縮方法,包括以下步驟:
(I)讀取原始圖像,獲取的原始圖像的RGB顏色空間轉(zhuǎn)換為HSV顏色空間。(2)利用步驟(I)中轉(zhuǎn)換為HSV顏色空間后的圖像,獲取其像素數(shù)據(jù),并通過八叉樹法設(shè)置調(diào)色板。(3)利用步驟(2)獲得的調(diào)色板在步驟(I)所獲取的圖像上建立像素調(diào)色板索引,得到索引圖像。(4)利用步驟(2)獲得的調(diào)色板對步驟(3)所獲取的索引圖像中的像素數(shù)據(jù)進(jìn)行數(shù)據(jù)壓縮。(5 )生成最終壓縮的PNG格式圖片。步驟(2)所述八叉樹法設(shè)置調(diào)色板的方法包括以下步驟:Ca)建立一棵只有根節(jié)點Iiodetl的八叉樹,并進(jìn)行初始化;(b)將整個HSV顏色空間根據(jù)色調(diào)均勻等分成8個小顏色空間,分別順序標(biāo)記為Iiode1, node2,…,node8,將其各個小顏色空間Iiodei Cnode1,node2, ---,nodeg)作為根節(jié)點的葉子節(jié)點,為每個節(jié)點Iiodei建立一個鏈表用以存儲該顏色空間的顏色,并設(shè)置一個計數(shù)器Counti記錄該顏色空間中的顏色數(shù);(C)從步驟(I)獲得的圖像文件中順序讀入每一個像素的顏色,在八叉樹中查找該顏色所在的子顏色空間對應(yīng)的葉子節(jié)點Iiodei,累加Iiodei的計數(shù)器Counti,并將該顏色及對應(yīng)像素位置加入Iiodei的鏈表中。如果Counti大于設(shè)定閾值則分裂該節(jié)點, 則將該節(jié)點對應(yīng)的子顏色空間均勻分為8份作為其葉子節(jié)點,并為每個葉子節(jié)點建立用于存儲該顏色空間的顏色的鏈表以及對應(yīng)的計數(shù)器,并將該節(jié)點的鏈表中的顏色及其像素位置重新分配到葉子節(jié)點中;(d)將所有葉子節(jié)點按Counti值進(jìn)行排序,將前256個加入調(diào)色板;(e)依次對剩余的葉子節(jié)點在位于調(diào)色板中的節(jié)點里面選擇一個與其顏色最相似的節(jié)點進(jìn)行合并,整理得到最終調(diào)色板。所述步驟(3)中建立像素調(diào)色板索引的方法為:依次處理步驟(2)中最終調(diào)色板中的節(jié)點,遍歷節(jié)點的鏈表中的像素位置,將圖像中對應(yīng)像素位置的值改為調(diào)色板顏色索引。所述步驟(4)中數(shù)據(jù)壓縮方法采用Deflate壓縮算法。所述步驟(5)中最終得到的壓縮的PNG格式圖片包括5大數(shù)據(jù)塊:文件頭IHDR、調(diào)色板PLTE、透明度tRNS、像素數(shù)據(jù)IDAT、文件尾IEND。綜上所述,本發(fā)明通過將源圖片轉(zhuǎn)換為PNG格式圖片,并刪除不必要的數(shù)據(jù)塊,得到較理想的PNG格式圖片,同時具有較好的處理性能和較高的壓縮率。
圖1為本發(fā)明所述一種PNG圖片的壓縮方法的流程示意圖。
具體實施例方式為了讓本領(lǐng)域的技術(shù)人員能夠更好地了解本發(fā)明的技術(shù)方案,下面結(jié)合附圖對本發(fā)明作進(jìn)一步的闡述。如圖1所示,本發(fā)明揭示了一種PNG圖片的壓縮方法,包括以下步驟:
(I)讀取原始圖像,獲取原始圖像的RGB顏色空間轉(zhuǎn)換為HSV顏色空間。
對圖像的每一個像素點,設(shè)(r,g, b)分別是該像素點在RGB空間內(nèi)的紅、綠和藍(lán)像素值,該值為0到255之間的實數(shù)。設(shè)max=max (r, g, b), min=min (r, g, b)。則相應(yīng)在HSV空間中的(h,s’ v)值分別為:
權(quán)利要求
1.一種PNG圖片的壓縮方法,其特征在于,包括以下步驟: (1)讀取原始圖像,獲取原始圖像的RGB顏色空間轉(zhuǎn)換為HSV顏色空間; (2)利用步驟(I)中轉(zhuǎn)換為HSV顏色空間后的圖像,獲取其像素數(shù)據(jù),并通過八叉樹法設(shè)置調(diào)色板; (3)利用步驟(2)獲得的調(diào)色板在步驟(I)所獲取的圖像上建立像素調(diào)色板索引,得到索引圖像; (4)利用步驟(2)獲得的調(diào)色板對步驟(3)所獲取的索引圖像中的像素數(shù)據(jù)進(jìn)行數(shù)據(jù)壓縮; (5)生成最終壓縮的PNG格式圖片。
2.根據(jù)權(quán)利要求1所述一種PNG圖片的壓縮方法,其特征在于:步驟(2)所述八叉樹法設(shè)置調(diào)色板的方法包括以下步驟: Ca)建立一棵只有根節(jié)點Iiodeci的八叉樹,并進(jìn)行初始化; (b)將整個HSV顏色空間根據(jù)色調(diào)均勻等分成8個小顏色空間,分別順序標(biāo)記為Iiode1,node2,…,node8,將其各個小顏色空間Iiodei作為根節(jié)點的葉子節(jié)點,為每個子節(jié)點Iiodei建立一個鏈表用于存儲該小顏色空間的顏色,并設(shè)置一個計數(shù)器Counti記錄該小顏色空間中的顏色數(shù); (C)從步驟(I)獲得的圖像文件中順序 讀入每一個像素的顏色,在八叉樹中查找該顏色所在的子顏色空間對應(yīng)的葉子節(jié)點Iiodei,累加Iiodei的計數(shù)器Counti,并將該顏色及對應(yīng)像素位置加入Iiodei的鏈表中,如果Counti大于設(shè)定閾值則分裂該節(jié)點,則將該節(jié)點對應(yīng)的子顏色空間均勻分為8份作為其葉子節(jié)點,并為每個葉子節(jié)點建立用于存儲該顏色空間的顏色的鏈表以及對應(yīng)的計數(shù)器,并將該節(jié)點的鏈表中的顏色及其像素位置重新分配到葉子節(jié)點中; Cd)將所有葉子節(jié)點按Counti值進(jìn)行排序,將前256個加入調(diào)色板; (e)依次對剩余的葉子節(jié)點在位于調(diào)色板中的節(jié)點里面選擇一個與其顏色最相似的節(jié)點進(jìn)行合并,整理得到最終調(diào)色板。
3.根據(jù)權(quán)利要求1所述一種PNG圖片的壓縮方法,其特征在于:所述步驟(3)中建立像素調(diào)色板索引的方法為:依次處理步驟(2)中最終調(diào)色板中的節(jié)點,遍歷節(jié)點的鏈表中的像素位置,將圖像中對應(yīng)像素位置的值改為調(diào)色板顏色索引。
4.根據(jù)權(quán)利要求1所述一種PNG圖片的壓縮方法,其特征在于:所述步驟(4)中數(shù)據(jù)壓縮方法采用Deflate壓縮算法。
5.根據(jù)權(quán)利要求1所述一種PNG圖片的壓縮方法,其特征在于:所述步驟(5)中最終得到的壓縮PNG格式圖片包括5大數(shù)據(jù)塊:文件頭IHDR、調(diào)色板PLTE、透明度tRNS、像素數(shù)據(jù)IDAT、文件尾 IEND。
全文摘要
本發(fā)明公開了一種PNG圖片的壓縮方法,包括以下步驟(1)讀取原始圖像,獲取原始圖像的RGB顏色空間轉(zhuǎn)換為HSV顏色空間;(2)利用步驟(1)中所獲取的圖像的像素數(shù)據(jù),通過八叉樹法設(shè)置調(diào)色板;(3)利用步驟(2)獲得的調(diào)色板在步驟(1)所獲取的圖像上建立像素調(diào)色板索引,得到索引圖像;(4)利用步驟(2)獲得的調(diào)色板對步驟(3)所獲取的索引圖像中的像素數(shù)據(jù)進(jìn)行數(shù)據(jù)壓縮;(5)生成最終壓縮的PNG格式圖片。本發(fā)明通過將源圖片轉(zhuǎn)換為PNG格式圖片,并刪除不必要的數(shù)據(jù)塊,得到較理想的PNG格式圖片,同時具有較好的處理性能和較高的壓縮率。
文檔編號H04N7/26GK103209326SQ20131010468
公開日2013年7月17日 申請日期2013年3月29日 優(yōu)先權(quán)日2013年3月29日
發(fā)明者蔡昭權(quán) 申請人:惠州學(xué)院