一種帶透明度圖像的自動壓縮的系統(tǒng)及處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及圖像處理領(lǐng)域,尤其涉及一種將帶透明度圖像自動壓縮選擇的系統(tǒng)及處理方法。
【背景技術(shù)】
[0002]帶透明度的圖像(RGBA圖像)是計算機(jī)游戲軟件中大量使用的圖像格式。但未經(jīng)壓縮的圖像往往占用大量存儲空間,因此在實際生產(chǎn)中一般會使用一種或多種圖像壓縮格式。目前流行的有損圖像壓縮格式或工具,如webp格式、pngquant工具、雙Jpeg格式(一張Jpeg圖片存儲RGB通道,另一張存儲Alpha通道)等,都能夠在人眼可接受的圖像質(zhì)量損失下,大幅降低圖像文件所占存儲空間的大小。
[0003]但不同性質(zhì)的圖像,所適用的壓縮格式或工具是不同的。對于顏色數(shù)少、卡通風(fēng)格的帶透明度圖像,pngquant可以起到較好的壓縮效果;而對于類似于寫實風(fēng)格以及自然風(fēng)景風(fēng)格的圖像,webp以及雙Jpeg格式所得到的壓縮后文件一般會有著更小的尺寸。計算機(jī)游戲軟件項目中所使用的圖像文件千差萬別,如果單純只使用一種圖像壓縮方法,往往起不到最優(yōu)的縮減圖像文件大小的效果。
【發(fā)明內(nèi)容】
[0004]本發(fā)明所要解決的技術(shù)問題是提供一種帶透明度圖像的自動壓縮的系統(tǒng)及處理方法,達(dá)到了在指定的質(zhì)量參數(shù)下,為圖像源文件自動選擇其最優(yōu)的圖像壓縮方法的目的,可以最大化地縮減軟件安裝包的大小,有利于軟件在互聯(lián)網(wǎng)上的傳輸與發(fā)布。
[0005]本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種帶透明度圖像的自動壓縮系統(tǒng),包括質(zhì)量參數(shù)設(shè)置模塊、壓縮執(zhí)行模塊和比較模塊,
[0006]所述質(zhì)量參數(shù)設(shè)置模塊,用于對接收的圖像源文件的質(zhì)量參數(shù)值進(jìn)行設(shè)置,得到質(zhì)量參數(shù)初始值;
[0007]所述壓縮執(zhí)行模塊,用于根據(jù)要對圖像源文件所進(jìn)行的壓縮格式的不同,對質(zhì)量參數(shù)初始值進(jìn)行調(diào)整或保留處理后,得到不同壓縮格式下的質(zhì)量參數(shù)值,再以不同的壓縮格式分別對圖像源文件進(jìn)行壓縮處理,得到不同壓縮格式下的圖像壓縮文件;
[0008]所述比較模塊,用于根據(jù)存儲數(shù)據(jù)空間的大小將圖像源文件以及各個圖像壓縮文件進(jìn)行比較,選擇存儲數(shù)據(jù)空間最小的圖像文件作為最終輸出文件。
[0009]本發(fā)明的有益效果是:針對不同的圖像源文件適用于不同的壓縮方法這一特點(diǎn),對圖像源文件執(zhí)行相同的質(zhì)量參數(shù),分別通過不同的壓縮工具進(jìn)行壓縮處理,比較圖像源文件與壓縮后的圖像文件的存儲數(shù)據(jù)空間占用率大小,選擇最小的文件作為最終輸出結(jié)果,達(dá)到了在指定的質(zhì)量參數(shù)下,為每一個圖像自動選擇其最優(yōu)的圖像壓縮方法的目的,可以最大化地縮減軟件安裝包的大小,有利于軟件在互聯(lián)網(wǎng)上的傳輸與發(fā)布。
[0010]在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
[0011]進(jìn)一步,所述質(zhì)量參數(shù)值的范圍為O?100 ;質(zhì)量參數(shù)越大,人眼所感受到的壓縮后的圖像質(zhì)量就越好。
[0012]進(jìn)一步,所述壓縮執(zhí)行模塊包括webp格式壓縮單元、png格式壓縮單元和所述雙Jpeg格式壓縮單元,
[0013]所述webp格式壓縮單元,用于保留質(zhì)量參數(shù)初始值作為壓縮的質(zhì)量參數(shù)值,再將圖像源文件通過webp壓縮工具進(jìn)行壓縮處理,生成壓縮文件a.webp ;
[0014]所述png格式壓縮單元,用于將壓縮的質(zhì)量參數(shù)值控制在所述質(zhì)量參數(shù)初始值以下,再將圖像源文件通過pngquant壓縮工具進(jìn)行壓縮處理,生成壓縮文件a.png ;進(jìn)行壓縮前對壓縮速度以及是否覆蓋圖像源文件的壓縮參數(shù)進(jìn)行設(shè)置后,再進(jìn)行壓縮。
[0015]所述雙Jpeg格式壓縮單元,用于根據(jù)不同的圖像通道將圖像源文件拆分為兩個數(shù)據(jù)文件,并分別對兩個數(shù)據(jù)文件的質(zhì)量參數(shù)初始值進(jìn)行調(diào)整或保留處理后,分別對兩個數(shù)據(jù)文件進(jìn)行壓縮處理,再將生成的兩個壓縮文件進(jìn)行合并,從而得到壓縮文件a.j2。
[0016]進(jìn)一步,所述雙Jpeg格式壓縮單元包括拆分子單元、RGB數(shù)據(jù)壓縮子單元、Alpha數(shù)據(jù)壓縮子單元和合并子單元,
[0017]所述拆分子單元,用于根據(jù)不同的圖像通道將圖像源文件拆分為RGB通道的數(shù)據(jù)文件和Alpha通道的數(shù)據(jù)文件;
[0018]所述RGB數(shù)據(jù)壓縮子單元,用于保留質(zhì)量參數(shù)初始值作為壓縮的質(zhì)量參數(shù)值,將RGB通道的數(shù)據(jù)文件通過Jpeg壓縮工具,生成壓縮文件a-rgb.jpg ;
[0019]所述Alpha數(shù)據(jù)壓縮子單元,用于將質(zhì)量參數(shù)初始值調(diào)整為90來作為壓縮的質(zhì)量參數(shù)值,將Alpha通道的數(shù)據(jù)文件通過Jpeg壓縮工具,生成壓縮文件a_alpha.jpg ;
[0020]所述合并子單元,用于將生成的壓縮文件a-rgb.jpg和a-alpha.jpg進(jìn)行合并,得到壓縮文件a.j2。
[0021]將圖像源文件和壓縮后獲得的a.webp, a.png、a.j2,這四個文件的占用存儲數(shù)據(jù)空間的大小進(jìn)行比較,最終輸出最小的圖像文件。本系統(tǒng)可使項目中的圖像源文件的大小,在高質(zhì)量設(shè)定下,降低到原圖像源文件大小的20%?25%。
[0022]本發(fā)明解決上述技術(shù)問題的另一技術(shù)方案如下:一種帶透明度圖像的自動壓縮的處理方法,包括如下步驟:
[0023]步驟A:對接收的圖像源文件的質(zhì)量參數(shù)值進(jìn)行設(shè)置,得到質(zhì)量參數(shù)初始值;
[0024]步驟B:根據(jù)要對圖像源文件所進(jìn)行的壓縮格式的不同,對質(zhì)量參數(shù)初始值進(jìn)行調(diào)整或保留處理后,得到不同壓縮格式下的質(zhì)量參數(shù)值,再以不同的壓縮格式分別對圖像源文件進(jìn)行壓縮處理,得到不同壓縮格式下的圖像壓縮文件;
[0025]步驟C:根據(jù)存儲數(shù)據(jù)空間的大小將圖像源文件以及各個圖像壓縮文件進(jìn)行比較,選擇存儲數(shù)據(jù)空間最小的圖像文件作為最終輸出文件。
[0026]在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
[0027]進(jìn)一步,所述質(zhì)量參數(shù)值的范圍為O?100。
[0028]進(jìn)一步,所述步驟B中對圖像源文件進(jìn)行壓縮處理,具體包括如下步驟:
[0029]步驟B1:保留質(zhì)量參數(shù)初始值作為壓縮的質(zhì)量參數(shù)值,再將圖像源文件通過webp壓縮工具進(jìn)行壓縮處理,生成壓縮文件a.webp ;
[0030]步驟B2:將壓縮的質(zhì)量參數(shù)值控制在所述質(zhì)量參數(shù)初始值以下,再將圖像源文件通過pngquant壓縮工具進(jìn)行壓縮處理,生成壓縮文件a.png ;進(jìn)行壓縮前對壓縮速度以及是否覆蓋圖像源文件的壓縮參數(shù)進(jìn)行設(shè)置后,再進(jìn)行壓縮;
[0031]步驟B3:根據(jù)不同的圖像通道將圖像源文件拆分為兩個數(shù)據(jù)文件,并分別對兩個數(shù)據(jù)文件的質(zhì)量參數(shù)初始值進(jìn)行調(diào)整或保留處理后,分別對兩個數(shù)據(jù)文件進(jìn)行壓縮處理,再將生成的兩個壓縮文件進(jìn)行合并,從而得到壓縮文件a.j2。
[0032]進(jìn)一步,所述步驟B3得到壓縮文件a.j2,具體包括如下步驟:
[0033]步驟B3.1:根據(jù)不同的圖像通道將圖像源文件拆分為RGB通道的數(shù)據(jù)文件和Alpha通道的數(shù)據(jù)文件;
[0034]步驟B3.2:保留質(zhì)量參數(shù)初始值作為壓縮的質(zhì)量參數(shù)值,將RGB通道的數(shù)據(jù)文件通過Jpeg壓縮工具,生成壓縮文件;
[0035]步驟B3.3:將質(zhì)量參數(shù)初始值調(diào)整為90來作為壓縮的質(zhì)量參數(shù)值,將Alpha通道的數(shù)據(jù)文件通過Jpeg壓縮工具,生成壓縮文件;
[0036]步驟B3.4:將生成的壓縮文件a-rgb.jpg和a-alpha.jpg進(jìn)行合并,得到壓縮文件 a.j2。
[0037]將圖像源文件和壓縮后獲得的a.webp, a.png、a.j2,這四個文件的占用存儲數(shù)據(jù)空間的大小進(jìn)行比較,最終輸出最小的圖像文件。本系統(tǒng)可使項目中的圖像源文件的大小,在高質(zhì)量設(shè)定下,降低到原圖像源文件大小的20%?25%。
【附圖說明】
[0038]圖1為本發(fā)明帶透明度圖像的自動壓縮系統(tǒng)的模塊框圖;
[0039]圖2為本發(fā)明帶透明度圖像的自動壓縮的處理方法的方法流程圖。
[0040]附圖中,各標(biāo)記所代表的部件名稱如下:
[0041]1、質(zhì)量參數(shù)設(shè)置模塊,2、壓縮執(zhí)行模塊,3、比較模塊,201、webp格式壓縮單兀,202、png格式壓縮單元,203、雙Jpeg格式壓縮單元,2031、拆分子單元,2032、RGB數(shù)據(jù)壓縮子單元,2033、Alpha數(shù)據(jù)壓縮子單元,2034、合并子單元。
【具體實施方式】
[0042]以下結(jié)合附圖對本發(fā)明的原理和特征進(jìn)行描述,所舉實例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
[0043]如圖1所示,一種帶透明度圖像的自動壓縮系統(tǒng),包括質(zhì)量參數(shù)設(shè)置模塊1、壓縮執(zhí)行模塊2和比較模塊3,
[0044]所述質(zhì)量參數(shù)設(shè)置模塊,用于對接收的圖像源文件的質(zhì)量參數(shù)值進(jìn)行設(shè)置,得到質(zhì)量參數(shù)初始值;
[0045]所述壓縮執(zhí)行模塊2,用于根據(jù)要對圖像源文件所進(jìn)行的壓縮格式的不同,對質(zhì)量參數(shù)初始值進(jìn)行調(diào)整或保留處理后,得到不同壓縮格式下的質(zhì)量參數(shù)值,再以不同的壓縮格式分別對圖像源文件進(jìn)行壓縮處理,得到不同壓縮格式下的圖像壓縮文件;
[0046]所述比較模塊3,用于根據(jù)存儲數(shù)據(jù)空間的大小將圖像源文件以及各個圖像壓縮文件進(jìn)行比較,選擇存儲數(shù)據(jù)空間最小的圖像文件作為最終輸出文件。
[0047]優(yōu)選地,所述質(zhì)量參數(shù)值的范圍為O?100。質(zhì)量參數(shù)越大,人眼所感受到的壓縮后的圖像質(zhì)量就越好。
[0048]所述壓縮執(zhí)行模塊2包括webp格式壓縮單元201、png格式壓縮單元202和所述雙Jpeg格式壓縮單元203,
[0049]所述webp格式壓縮單元201,用于保留質(zhì)量參數(shù)初始值作為壓縮的質(zhì)量參數(shù)值,再將圖像源文件通過webp壓縮工具進(jìn)行壓縮處理,生成壓縮文件a.webp ;
[0050]所述png格式壓縮單元202,用于將壓縮的質(zhì)量參數(shù)值控制在所述質(zhì)量參數(shù)初始值以下,再將圖像源文件通過pngquant壓縮工具進(jìn)行壓縮處理,生成壓縮文件a.png ;進(jìn)行壓縮前對壓縮速度以及是否覆蓋圖像源文件的壓縮參數(shù)進(jìn)行設(shè)置后,再進(jìn)行壓縮:具體可設(shè)置代碼一force—speedl—quality O-〈quality〉,其中,force為強(qiáng)制覆蓋原有的源文件,speed I為慢速壓縮,quality 0_〈quality>為將壓縮的質(zhì)量參數(shù)值控制在所述質(zhì)量參數(shù)初始值(〈quality〉)以下;
[0051]所述雙Jpeg格式壓縮單元203,用于根據(jù)不同的圖像通