本發(fā)明屬于數(shù)據(jù)信息處理領(lǐng)域,尤其涉及一種移動(dòng)終端圖片交互方法及裝置。
背景技術(shù):
1、在移動(dòng)端平臺(tái)開發(fā)環(huán)境下,經(jīng)常會(huì)遇到原生端和web端進(jìn)行業(yè)務(wù)交互的情況,有時(shí)會(huì)涉及到數(shù)據(jù)信息的傳遞。對(duì)于普通的字符串信息傳遞在大多數(shù)情況下都是沒有問題的,但是如果是傳遞圖片,就存在因?yàn)閳D片數(shù)據(jù)過大導(dǎo)致轉(zhuǎn)成的base64字符串?dāng)?shù)據(jù)過大,造成傳遞過程異常,甚至出現(xiàn)內(nèi)存耗盡的情況。
2、同時(shí),數(shù)據(jù)過大的圖片傳給web端要花很長(zhǎng)的時(shí)間,因?yàn)樾枰獙D片數(shù)據(jù)按字節(jié)做一次轉(zhuǎn)換,待web端獲取之后設(shè)置到屬性里,顯示的時(shí)候需要再轉(zhuǎn)一次,因此加載一張圖片往往需要等很久,用戶體驗(yàn)很差。
技術(shù)實(shí)現(xiàn)思路
1、為了至少保證移動(dòng)終端圖片交互時(shí)具有較好的用戶體驗(yàn),本發(fā)明提出移動(dòng)終端圖片交互方法及裝置,該移動(dòng)終端圖片交互方法至少包括:
2、客戶端接收web端觸發(fā)的圖片獲取事件并判斷圖片壓縮參數(shù)狀態(tài),確定圖片壓縮參數(shù);
3、獲取待壓縮的圖片;
4、利用所述圖片壓縮參數(shù)對(duì)待壓縮圖片進(jìn)行處理,將已壓縮圖片緩存于客戶端本地,輸出已壓縮圖片的路徑;
5、利用已壓縮圖片的路徑上傳已壓縮圖片至預(yù)設(shè)的文件服務(wù)器,并接收已壓縮圖片在所述文件服務(wù)器的文件路徑url,再將該圖片文件路徑url發(fā)送給web端使用。
6、進(jìn)一步的,接收web端觸發(fā)的圖片獲取事件并判斷圖片壓縮參數(shù)狀態(tài),確定圖片壓縮參數(shù),包括:
7、接收web端觸發(fā)的圖片獲取事件并判斷圖片壓縮參數(shù)狀態(tài),若不存在圖片壓縮參數(shù),則將圖片壓縮參數(shù)設(shè)為預(yù)設(shè)值,否則,將獲取的圖片壓縮參數(shù)作為圖片壓縮參數(shù)。
8、進(jìn)一步的,接收web端觸發(fā)的圖片獲取事件并判斷圖片壓縮參數(shù)狀態(tài),確定圖片壓縮參數(shù),包括:
9、客戶端加載webview組件并初始化jsbridgesdk;
10、jsbridgesdk注冊(cè)javascript事件方法集合,并啟動(dòng)web觸發(fā)事件方法的監(jiān)聽;
11、通過jsbridgesdk監(jiān)聽到web端觸發(fā)的圖片獲取事件;
12、判斷圖片壓縮參數(shù)狀態(tài),確定圖片壓縮參數(shù);
13、將確定的圖片壓縮參數(shù)保存在客戶端本地屬性,擬傳入圖片壓縮;
14、注銷jsbridgesdk。
15、進(jìn)一步的,獲取待壓縮的圖片,包括:
16、調(diào)用系統(tǒng)相冊(cè)或相機(jī)組建服務(wù),檢測(cè)系統(tǒng)相冊(cè)或相機(jī)的訪問權(quán)限狀態(tài);
17、在所述系統(tǒng)相冊(cè)或相機(jī)的訪問權(quán)限為授權(quán)狀態(tài)時(shí),獲取相機(jī)拍攝的圖片或者從圖片選擇器中進(jìn)行圖片選擇,得到待壓縮的圖片。
18、進(jìn)一步的,利用所述圖片壓縮參數(shù)對(duì)待壓縮圖片進(jìn)行處理,將已壓縮圖片緩存于客戶端本地,輸出已壓縮圖片的路徑,包括:
19、根據(jù)所述圖片壓縮參數(shù),確定對(duì)應(yīng)的壓縮比例值;
20、通過改變圖片色彩深度,或減小圖片像素?cái)?shù)量,或改變jpg型圖片的壓縮系數(shù)中至少一種方式壓縮待壓縮圖片;
21、將達(dá)到壓縮比例值的圖片作為已壓縮圖片;
22、創(chuàng)建已壓縮圖片相應(yīng)的圖片文件id,并將該已壓縮圖片緩存于客戶端本地,得到已壓縮圖片的路徑,并將此已壓縮圖片的路徑輸出。
23、進(jìn)一步的,通過改變圖片色彩深度來壓縮待壓縮圖片,包括:
24、對(duì)于ios系統(tǒng),改變圖片色彩深度來壓縮待壓縮圖片,包括以下步驟:
25、設(shè)置預(yù)設(shè)第一種類的參數(shù),通過cgimage庫(kù)構(gòu)造方法cgimagecreate()自定義重新生成cgimage庫(kù)來改變圖片色彩深度,所述預(yù)設(shè)第一種類的參數(shù)至少包括:每個(gè)像素占用的位數(shù)、色彩空間、每個(gè)通道占用位數(shù)對(duì)于android,直接利用bitmap庫(kù)中的色彩深度壓縮函數(shù)。
26、進(jìn)一步的,通過改變jpg型圖片的壓縮系數(shù)壓縮待壓縮圖片,包括:利用applejpeg的方法或bitmap.compress()方法對(duì)jpg型圖片壓縮。
27、進(jìn)一步的,上傳已壓縮圖片至預(yù)設(shè)的文件服務(wù)器,并接收已壓縮圖片在所述文件服務(wù)器的文件路徑url,再將該圖片文件路徑url發(fā)送給web端使用,包括:
28、根據(jù)已壓縮圖片的路徑讀取已壓縮圖片的二進(jìn)制數(shù)據(jù),使已壓縮圖片處于就緒狀態(tài);
29、設(shè)置已壓縮圖片的上傳參數(shù),所述上傳參數(shù)至少包括圖片文件名稱、圖片類型、圖片大小、上傳時(shí)間戳以及已壓縮圖片的二進(jìn)制數(shù)據(jù);
30、上傳已壓縮圖片至預(yù)設(shè)的文件服務(wù)器;
31、根據(jù)http響應(yīng)數(shù)據(jù)獲取到已壓縮圖片在文件服務(wù)器的文件路徑url,將此url參數(shù)通過上傳回調(diào)事件傳給web端。
32、第二方面,相應(yīng)的,本發(fā)明實(shí)施例提供一種移動(dòng)終端圖片交互裝置,包括需求交互模塊、圖片選取模塊、圖片壓縮模塊、圖片上傳模塊,其中:
33、需求交互模塊,用于接收web端觸發(fā)的圖片獲取事件并判斷圖片壓縮參數(shù)狀態(tài),確定圖片壓縮參數(shù);
34、圖片選取模塊,用于獲取待壓縮的圖片;
35、圖片壓縮模塊,用于利用所述圖片壓縮參數(shù)對(duì)待壓縮圖片進(jìn)行處理,將已壓縮圖片緩存于客戶端本地,輸出已壓縮圖片的路徑;
36、圖片上傳模塊,用于利用已壓縮圖片的路徑上傳已壓縮圖片至預(yù)設(shè)的文件服務(wù)器,并接收已壓縮圖片在所述文件服務(wù)器的文件路徑url,再將該圖片文件路徑url發(fā)送給web端使用。
37、基于上述技術(shù)方案,本發(fā)明較現(xiàn)有技術(shù)而言的有益效果為:
38、本發(fā)明建立了基于移動(dòng)平臺(tái)下web端和原生端間進(jìn)行圖片壓縮、上傳的交互方法。本發(fā)明根據(jù)接收的web端觸發(fā)的圖片獲取事件并判斷圖片壓縮參數(shù)狀態(tài),確定圖片壓縮參數(shù),能進(jìn)行動(dòng)態(tài)地壓縮等級(jí)參數(shù)控制,圖片數(shù)據(jù)大小可控且基本滿足不同場(chǎng)景對(duì)于圖片質(zhì)量的需求。本發(fā)明無需將壓縮后的圖片通過base64字符串直接傳遞給web端,而是將壓縮后的圖片會(huì)先自動(dòng)緩存在客戶端本地,再上傳壓縮后的圖片至預(yù)設(shè)文件服務(wù)器,避免了事務(wù)中斷導(dǎo)致的數(shù)據(jù)丟失等數(shù)據(jù)性能問題,下次在同一圖片及壓縮參數(shù)下可快速調(diào)用緩存數(shù)據(jù),節(jié)約了系統(tǒng)開銷。另外,利用壓縮圖片上傳至文件服務(wù)器這一途徑,將返回的已壓縮圖片在文件服務(wù)器的文件路徑url回調(diào)傳給web端,得到了一個(gè)可以擴(kuò)散使用的圖片資源,增加了此資源的使用面及傳遞效率。
1.一移動(dòng)終端圖片交互方法,其特征在于,至少包括以下步驟:
2.如權(quán)利要求1所述的方法,其特征在于,所述接收web端觸發(fā)的圖片獲取事件并判斷圖片壓縮參數(shù)狀態(tài),確定圖片壓縮參數(shù),包括:
3.如權(quán)利要求1所述的方法,其特征在于,所述接收web端觸發(fā)的圖片獲取事件并判斷圖片壓縮參數(shù)狀態(tài),確定圖片壓縮參數(shù),包括:
4.如權(quán)利要求1所述的方法,其特征在于,所述獲取待壓縮的圖片,包括:
5.如權(quán)利要求1所述的方法,其特征在于,利用所述圖片壓縮參數(shù)對(duì)待壓縮圖片進(jìn)行處理,將已壓縮圖片緩存于客戶端本地,輸出已壓縮圖片的路徑,包括:
6.如權(quán)利要求1所述的方法,其特征在于,所述按預(yù)設(shè)規(guī)則壓縮待壓縮圖片至少包括:通過改變圖片色彩深度,或減小圖片像素?cái)?shù)量,或改變jpg型圖片的壓縮系數(shù)中至少一種方式壓縮待壓縮圖片。
7.如權(quán)利要求6所述的方法,其特征在于,通過改變圖片色彩深度來壓縮待壓縮圖片,包括:
8.如權(quán)利要求6所述的方法,其特征在于,通過改變jpg型圖片的壓縮系數(shù)壓縮待壓縮圖片,包括:
9.如權(quán)利要求1所述的方法,其特征在于,所述上傳已壓縮圖片至預(yù)設(shè)的文件服務(wù)器,并接收已壓縮圖片在所述文件服務(wù)器的文件路徑url,再將該圖片文件路徑url發(fā)送給web端使用,包括:
10.一種移動(dòng)終端圖片交互裝置,包括需求交互模塊、圖片選取模塊、圖片壓縮模塊、圖片上傳模塊,其中:
11.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有指令,當(dāng)指令在終端上運(yùn)行時(shí),使得終端執(zhí)行如權(quán)利要求1-9任一項(xiàng)所述的移動(dòng)終端圖片交互方法。
12.一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器,處理器及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)如權(quán)利要求1-9任一項(xiàng)所述的移動(dòng)終端圖片交互方法。