使用PhoneGap裁剪和壓縮圖片並上傳(安卓版)

來源:互聯網
上載者:User

標籤:des   android   style   http   io   ar   使用   sp   java   

安裝phonegap的camera外掛程式後,可以對從圖片庫選擇圖片進行裁剪或壓縮操作,但外掛程式本身有些問題,經過改進,現在可以順利完成上述功能。

安裝方法

1 首先使用命令列安裝camera外掛程式:

phonegap plugin add org.apache.cordova.camera

2 安裝成功後,下載下面的CameraLauncher.java檔案,將外掛程式包中的同名檔案替換掉:

http://phonegap.jiusem.net/camera/src/android/CameraLauncher.java

使用方法

1 裁剪圖片。下面的代碼示範了完整的將圖片裁剪為100*100並上傳到服務端的過程,請注意高亮的部分:

$(function(){$(‘#b1‘).click(function(){navigator.camera.getPicture(function(imgData){$(‘#pInfo‘).html(imgData);//$(‘#img‘).attr(‘src‘,imgData);var options = new FileUploadOptions();options.fileKey="file";options.fileName="test.jpg";options.mimeType="image/jpeg";var ft = new FileTransfer();ft.upload(imgData, encodeURI("http://...test.php"), win, fail, options);}, function(){}, { quality:50,    destinationType: Camera.DestinationType.FILE_URL ,    sourceType : 0,
                    //====關鍵設定=======================================    allowEdit:true, //出現裁剪框    targetWidth:100,//圖片裁剪高度    targetHeight:100 });//圖片裁剪高度
//======關鍵設定=========================================});//上傳成功的回調var win = function(r) {             console.log(r);}//上傳失敗的回調var fail = function(error) {    alert("上傳失敗");}});

2 壓縮圖片。下面的代碼示範了將圖片大小限制在768*1280以內並上傳的過程,最後圖片不一定都是768*1280,但寬高都不會超過設定的值,請注意高亮部分:

$(function(){$(‘#b1‘).click(function(){navigator.camera.getPicture(function(imgData){$(‘#pInfo‘).html(imgData);//$(‘#img‘).attr(‘src‘,imgData);var options = new FileUploadOptions();options.fileKey="file";options.fileName="test.jpg";options.mimeType="image/jpeg";var ft = new FileTransfer();ft.upload(imgData, encodeURI("http://...test.php"), win, fail, options);}, function(){}, {      quality:50,    destinationType: Camera.DestinationType.FILE_URL ,    sourceType : 0,    //=====關鍵區段=========================================    targetWidth:768, //圖片輸出寬度    targetHeight:1280 //圖片輸出高度
//======關鍵區段========================================== });});//上傳成功的回調var win = function(r) {           console.log(r);}//上傳失敗的回調var fail = function(error) {    alert("上傳失敗");}});

上面的例子含有檔案上傳,如果需要測試完整的例子,你還需要安裝File Transfer外掛程式,檔案上傳的服務端代碼和普通的表單上傳沒有分別。

歡迎和我交流,任何問題或改進建議請留言或加我QQ:291445576(說明來意) ~

使用PhoneGap裁剪和壓縮圖片並上傳(安卓版)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.