圖形處理方法
【專利摘要】本發(fā)明屬于移動終端圖形處理【技術(shù)領(lǐng)域】,提供了圖形處理方法,包括如下步驟:步驟一,讀入要處理的圖形,獲取圖形的每一個像素的RGB數(shù)據(jù);步驟二,由于數(shù)字圖形是像素的集合,組成數(shù)字圖形的基本單位是像素P,故對讀入的每一個所述像素P的RGB數(shù)據(jù)進(jìn)行處理;步驟三,根據(jù)用戶選擇的要處理的圖形方式,具體包括:灰度圖形處理、底片圖形處理、柔化圖形處理、黑白圖形處理、光照圖形處理、放大鏡圖形處理、浮雕圖形處理,采用安卓系統(tǒng)的NDK進(jìn)行打包生成SO庫,使用SO庫進(jìn)行本地編輯接口JNI的調(diào)用,實現(xiàn)C語言對圖形進(jìn)行處理,得到相應(yīng)處理效果的新圖形,本發(fā)明具有高效率,低資源的優(yōu)點。
【專利說明】圖形處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于移動終端圖形處理【技術(shù)領(lǐng)域】,特別涉及一種在安卓環(huán)境下使用C語言編寫的圖形處理方法。
【背景技術(shù)】
[0002]當(dāng)前隨著手機移動終端的普及,用手機隨時隨地拍照普及到世界的各個角落。
[0003]隨著圖形的大量增多,人們對圖形個性化以及自我形象的追求,對圖形的各種加工處理已成為一種極大的需求。
[0004]圖形處理是讀取一張存儲在本地的圖形,然后以這張圖形為底片,根據(jù)自己的需求,在這個底片上進(jìn)行大量的數(shù)據(jù)處理,生成自己想要的圖形的方法。
[0005]圖形是人們在移動社交平臺上發(fā)布量較大的信息的一種,需求量與日俱增。因此,保持對圖形高性能的處理以及低內(nèi)存的占用是圖形處理的最佳的方式。
[0006]當(dāng)人們在準(zhǔn)備上傳圖形的過程中,先期對圖形進(jìn)行處理,如果處理時間太長,使用戶失去耐心;如果占用手機移動端內(nèi)存太多,會導(dǎo)致手機移動終端變慢和發(fā)熱,也給用戶造成不好的使用體驗;如何保持對圖形進(jìn)行高性能處理的同時占用內(nèi)存很小,是圖形處理過程中迫切需要解決的問題。
[0007]因此,移動終端圖形處理【技術(shù)領(lǐng)域】急需一種高效率,低資源占用的圖形處理方法。
【發(fā)明內(nèi)容】
[0008]本發(fā)明提供了一種圖形處理方法,技術(shù)方案如下:
[0009]圖形處理方法,其中,包括如下步驟:
[0010]步驟一,讀入要處理的圖形,獲取圖形的每一個像素的RGB數(shù)據(jù);
[0011]步驟二,由于數(shù)字圖形是像素的集合,組成數(shù)字圖形的基本單位是像素P,故對讀入的每一個像素P的RGB數(shù)據(jù)進(jìn)行處理,其中,R代表純紅色像素值,G代表純綠色像素值,B代表純藍(lán)色像素值;
[0012]步驟三,根據(jù)用戶選擇的要處理的圖形方式,具體包括:灰度圖形處理、底片圖形處理、柔化圖形處理、黑白圖形處理、光照圖形處理、放大鏡圖形處理、浮雕圖形處理,采用安卓系統(tǒng)的NDK進(jìn)行打包生成SO庫,使用SO庫進(jìn)行本地編輯接口 JNI的調(diào)用,實現(xiàn)C語言對圖形進(jìn)行處理,得到相應(yīng)處理效果的新圖形,具體步驟如下:
[0013]首先,根據(jù)圖形的寬和高,計算像素個數(shù),具體公式如下:
[0014]Count = ;
[0015]其中,Count代表像素個數(shù),W代表圖形的行數(shù),H代表像素的高;
[0016]進(jìn)一步地,根據(jù)像素個數(shù)Count,用JNI函數(shù)生成二維數(shù)組,具體公式如下:
[0017]CBuffer = [W] [H],
[0018]其中,CBuffer表示二維數(shù)組,[W]表示圖像像素的行數(shù),[H]表示圖像像素的高度,二維數(shù)組CBuffer的成員個數(shù)即為Count ;[0019]進(jìn)一步地,循環(huán)W*H次,分別讀取像素值;
[0020]進(jìn)一步地,根據(jù)用戶選擇的要處理的圖形方式的算法,分別計算每一個像素點處理后的取值,并存入到二維數(shù)組CBuffer中;
[0021]進(jìn)一步地,把生成的二維數(shù)組CBuffer通過JNI的調(diào)用,返回到JAVA層,并釋放數(shù)組元素,釋放內(nèi)存;即在JAVA層根據(jù)數(shù)據(jù)直接生成具有相應(yīng)處理效果的新圖形。
[0022]如上所述的圖形處理方法,其中,灰度圖形處理的具體算法為加權(quán)平均值法、整數(shù)方法、移位方法、平均值法、僅取綠色法、最大值法,具體公式如下:
[0023]加權(quán)平均值法,GrayP= R*0.3+G*0.59+B*0.11,
[0024]整數(shù)方法,GrayP=(R*30+G*59+B*ll)/100,
[0025]移位方法,GrayP=(R*28+G*151+B*77) ?8,
[0026]平均值法,GrayP= (R+G+B)/3,
[0027]僅取綠色,GrayP= G,
[0028]最大值法,GrayP= Max (R, G, B),
[0029]其中,GrayP表示像素P點的灰度值,R值代表純紅色像素值,G值代表純綠色像素值,B值代表純藍(lán)色像素值;
[0030]進(jìn)一步地,根據(jù)任意一種方法求得的GrayP,將原來的RGB顏色模型中的三元色點(R,G,B)值中的R,G,B統(tǒng)一用GrayP替換,形成新的三元色點(GrayP,GrayP,GrayP),用它替換原來的(R,G,B),即形成灰度圖形。
[0031]如上所述的圖形處理方法,其中,底片圖形處理的具體算法為取反值法,即對每一個像素進(jìn)行取反值計算,具體公式如下:
[0032]GrayPr = 255-R,
[0033]GrayPg = 255-G,
[0034]GrayPb = 255-B,
[0035]其中,GrayPr表示像素P的純紅色像素值的取反值,GrayPg表示像素P純綠色像素值的取反值,GrayPb表示像素P純藍(lán)色像素值的取反值;
[0036]進(jìn)一步地,根據(jù)求得的GrayPr、GrayPg> GrayPb,將原來的RGB中的三元色點(R,G, B)值中的R, G, B分別用GrayPr、GrayPg> GrayPb替換,形成新的三元色點RGB (GrayPr,GrayPg, GrayPb),即形成底片圖形。
[0037]如上所述的圖形處理方法,其中,柔化圖形處理的具體算法為:針對每一個像素值,采用分別計算加載的方式,將其原來的RGB顏色模型中的三元色點(R,G,B)值分別置為其周圍8個點和其修正系數(shù)相乘后再加上自身的RGB的平均值;再根據(jù)二維高斯函數(shù),進(jìn)而計算每個點的權(quán)重,采用正態(tài)分布曲線對每個點的權(quán)重進(jìn)行分配,計算出加權(quán)平局值,用加權(quán)平均值替換原來的RGB,即形成柔化圖形。
[0038]如上所述的圖形處理方法,其中,黑白圖形處理的具體算法為,對RGB求平均值GrayP = (R+G+B)/3,并將求得的平均值GrayP與比較值相比較,當(dāng)平均值大于等于比較值時,新的像素值為R = G = B = 255,當(dāng)平均值小于比較值時,新的像素值為R = G = B =O ;
[0039]進(jìn)一步地,通過求得的GrayP,將原來的三元色點RGB (R,G,B)中的R,G,B統(tǒng)一用GrayP替換,形成新的三元色點RGB (255,255,255)或者RGB (0,0,0),即形成黑白圖形。[0040]如上所述的圖形處理方法,其中,光照圖形處理的具體算法為,設(shè)定一個光源中心坐標(biāo)和光照強度,以此光源和圖形邊緣的最短距離為半徑,依次為每個點的RGB增加一個同樣強度值,具體公式如下:
[0041]首先,將中心點光源坐標(biāo)設(shè)為=Center (X,Y),距離圖形邊框最短半徑為R,光照強度為T,每一個像素距離光照中心點的增加強度,公式為:
[0042]
【權(quán)利要求】
1.圖形處理方法,其特征在于,包括如下步驟: 步驟一,讀入要處理的圖形,獲取圖形的每一個像素的RGB數(shù)據(jù); 步驟二,由于數(shù)字圖形是像素的集合,組成數(shù)字圖形的基本單位是像素P,故對讀入的每一個所述像素P的RGB數(shù)據(jù)進(jìn)行處理,其中,R代表純紅色像素值,G代表純綠色像素值,B代表純藍(lán)色像素值; 步驟三,根據(jù)用戶選擇的要處理的圖形方式,具體包括:灰度圖形處理、底片圖形處理、柔化圖形處理、黑白圖形處理、光照圖形處理、放大鏡圖形處理、浮雕圖形處理,采用安卓系統(tǒng)的NDK進(jìn)行打包生成SO庫,使用SO庫進(jìn)行本地編輯接口 JNI的調(diào)用,實現(xiàn)C語言對圖形進(jìn)行處理,得到相應(yīng)處理效果的新圖形,具體步驟如下: 首先,根據(jù)圖形的寬和高,計算像素個數(shù),具體公式如下:
Count = W^H ; 其中,Count代表像素個數(shù),W代表圖形的寬,H代表像素的高; 進(jìn)一步地,根據(jù)所述像素個數(shù)Count,用JNI函數(shù)生成二維數(shù)組,具體公式如下: CBuffer = [W][H], 其中,CBuffer表示二維數(shù)組,[W]表示圖像像素的行數(shù),[H]表示圖像像素的高度;二維數(shù)組CBuffer的成員個數(shù)即為Count ; 進(jìn)一步地,循環(huán)W*H次,分別讀取像素值; 進(jìn)一步地,根據(jù)用戶選擇的要處理的圖形方式的算法,分別計算每一個像素點處理后的像素值,并存入到二維數(shù)組CBuffer中; 進(jìn)一步地,把生成的二維數(shù)組CBufTer通過JNI的調(diào)用,返回到JAVA層,并釋放數(shù)組元素,釋放內(nèi)存;即在所述JAVA層根據(jù)數(shù)據(jù)直接生成具有相應(yīng)處理效果的新圖形。
2.根據(jù)權(quán)利要求1所述的圖形處理方法,其特征在于,所述灰度圖形處理的具體算法為 加權(quán)平均值法、整數(shù)方法、移位方法、平均值法、僅取綠色法、最大值法,具體公式 如下: 加權(quán)平均值法,GrayP = R*0.3+G*0.59+B*0.11, 整數(shù)方法,GrayP = (R*30+G*59+B*ll)/100, 移位方法,GrayP = (R*28+G*151+B*77) ?8, 平均值法,GrayP= (R+G+B)/3, 僅取綠色,GrayP = G, 最大值法,GrayP = Max (R,G,B), 其中,GrayP表示像素P點的灰度值,R值代表純紅色像素值,G值代表純綠色像素值,B值代表純藍(lán)色像素值; 進(jìn)一步地,根據(jù)任意一種方法求得的所述GrayP,將原來的所述RGB顏色模型中的三元色點(R,G,B)值中的R,G,B統(tǒng)一用GrayP替換,形成新的三元色點(GrayP,GrayP,GrayP),用它替換原來的(R,G,B),即形成灰度圖形。
3.根據(jù)權(quán)利要求1所述的圖形處理方法,其特征在于,所述底片圖形處理的具體算法為 取反值法,即對每一個像素進(jìn)行取反值計算,具體公式如下:GrayPr = 255-R,
GrayPg = 255-G,
GrayPb = 255-B, 其中,GrayPr表示像素P的純紅色像素值的取反值,GrayPg表示像素P純綠色像素值的取反值,GrayPb表示像素P純藍(lán)色像素值的取反值; 進(jìn)一步地,根據(jù)求得的所述GrayPr、GrayPg> GrayPb,將原來的所述RGB中的三元色點(R,G, B)值中的R, G, B分別用GrayPr、GrayPg> GrayPb替換,形成新的三元色點RGB (GrayPr, GrayPg, GrayPb),即形成底片圖形。
4.根據(jù)權(quán)利要求1所述的圖形處理方法,其特征在于,所述柔化圖形處理的具體算法為:針對每一個像素值,采用分別計算加載的方式,將其原來的RGB顏色模型中的三元色點(R,G,B)值分別置為其周圍8個點和其修正系數(shù)相乘后再加上自身的所述RGB的平均值;再根據(jù)二維高斯函數(shù),進(jìn)而計算每個點的權(quán)重,采用正態(tài)分布曲線對每個點的權(quán)重進(jìn)行分配,計算出加權(quán)平局值,用所述加權(quán)平均值替換原來的RGB,即形成柔化圖形。
5.根據(jù)權(quán)利要求1所述的圖形處理方法,其特征在于,所述黑白圖形處理的具體算法為,對RGB求平均值GrayP = (R+G+B) /3,并將求得的所述平均值GrayP與比較值相比較,當(dāng)所述平均值大于等于比較值時,新的像素值為R = G = B = 255,當(dāng)所述平均值小于比較值時,新的像素值為R = G = B = O; 進(jìn)一步地,通過求得的所述GrayP,將原來的三元色點RGB (R,G,B)中的R,G,B統(tǒng)一用GrayP替換,形成新的三元色點RGB (255,255,255)或者RGB (0,0,0),即形成黑白圖形。
6.根據(jù)權(quán)利要求1所述的圖形處理方法,其特征在于,所述光照圖形處理的具體算法為, 設(shè)定一個光源中心坐標(biāo)和光照強度,以此光源和圖形邊緣的最短距離為半徑,依次為每個點的RGB增加一個同樣強度值,具體公式如下:首先,將中心點光源坐標(biāo)設(shè)為:Center (X, Y),距離圖形邊框最短半徑為R,光照強度為T,每一個像素距離光照中心點的增加強度,公式為:
7.根據(jù)權(quán)利要求1所述的圖形處理方法,其特征在于,所述放大鏡圖形處理的具體算法 為,對圖形上的每一個點求其與放大鏡的距離Z,將所述Z與放大鏡的半徑進(jìn)行比較, 得出放大鏡圖形,具體步驟如下: 首先,設(shè)圖形上一個像素點的坐標(biāo)為(X,Y),放大鏡中心坐標(biāo)為(CenterX, CenterY),放大鏡的半徑為R,放大倍數(shù)為N ;進(jìn)一步地,若Z〈R,則將圖形上的此像素點坐標(biāo)更新為(X/N,Y/N),并求出更新后的像素點的像素值GrayP,作為新的像素值; 進(jìn)一步地,通過求得的所述像素值GrayP,將原來的所述RGB (R,G,B)都用GrayP替換,形成新的顏色RGB,即形成放大圖。
8.根據(jù)權(quán)利要求1所述的圖形處理方法,其特征在于,所述浮雕圖形處理的具體算法為,用圖形上一個像素點P的RGB值減去相鄰點的RGB值并加上比較值作為此像素點新的像素值GrayP ;通過求得的所述GrayP,將原來的所述RGB (R,G,B)中的R,G,B都用所述像素值GrayP替換,即形成浮雕圖形。
9.根據(jù)權(quán)利要 求5或8所述的圖形處理方法,其特征在于,所述比較值為128。
【文檔編號】G06T1/00GK104008523SQ201410287015
【公開日】2014年8月27日 申請日期:2014年6月24日 優(yōu)先權(quán)日:2014年6月24日
【發(fā)明者】劉奪福, 趙金鐘 申請人:上海盛致文化發(fā)展有限公司