日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

android相册拍照剪切上传封装,安卓,图片裁剪上传真机测试好使,打包后显示:无法保存裁剪的图像...

發(fā)布時(shí)間:2024/4/13 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android相册拍照剪切上传封装,安卓,图片裁剪上传真机测试好使,打包后显示:无法保存裁剪的图像... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

var IMAGE_UNSPECIFIED = "image/*";

var PHOTOZOOM = 2; // 獲取完圖片返回key

var PHOTOLAT = 1; // 剪裁完畢后返回key

var main;

var Intent;

var MediaStore;

var File;

var Uri;

var wt;

var task;

var outPutPath;//圖片路徑

//臨時(shí)的服務(wù)區(qū)位置

// 上傳文件

function upload(fullurl) {

if(!fullurl){

return;

}

document.getElementById('image-list').innerHTML = '';

wt = plus.nativeUI.showWaiting();

task = plus.uploader.createUpload(GV['URL']['AJAX'] + 'huodongtupian.php', //服務(wù)端的URL

{

method: "POST"

},

function(t, status) { //上傳完成

if (status == 200) {

//到時(shí)候把t.responseText解析成json就好

var dt = JSON.parse(t.responseText);

if (dt.error == 0) {

// sdk.obj('authorimg').src=dt.data.avatar;

// mui.fire(plus.webview.getWebviewById('person/index.html'),'selfCallBack',null);

wt.close();

gid('fenmian').value = dt.files;

plus.nativeUI.toast('上傳成功');

}

} else {

plus.nativeUI.toast('上傳失敗');

wt.close();

}

}

);

task.addFile(fullurl, {

key: 'avatar'

});

// task.addData("user_logo",global.getStorage('user_logo'));

task.start();

}

// 從相冊(cè)中選擇圖片,并裁剪

function galleryImg() {

var intent = new Intent(Intent.ACTION_PICK, null);

intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, IMAGE_UNSPECIFIED);

console.log(intent);

main.startActivityForResult(intent, PHOTOZOOM);

//

main.onActivityResult = function(requestCode, resultCode, data) {

if (PHOTOZOOM == requestCode) {

//輸出的文件目錄

outPutPath = plus.io.convertLocalFileSystemURL("_downloads/images/5"+parseInt(Math.random()*(99999-10000+1)+1000)+".jpg");

var file = new File(outPutPath);

// 輸出目錄uri

var outPutUri = Uri.fromFile(file);

plus.android.importClass(data);

var uri = data.getData();

console.log("uri:" + uri);

var cropIntent = new Intent("com.android.camera.action.CROP");

cropIntent.setDataAndType(uri, IMAGE_UNSPECIFIED);

// 截圖完畢后 輸出目錄

cropIntent.putExtra(MediaStore.EXTRA_OUTPUT, outPutUri);

cropIntent.putExtra("crop", "true");

// aspectX aspectY 是寬高的比例

cropIntent.putExtra("aspectX", 40);

cropIntent.putExtra("aspectY", 55);

// outputX outputY 是裁剪圖片寬高

cropIntent.putExtra("outputX", 400);

cropIntent.putExtra("outputY", 550);

cropIntent.putExtra("return-data", true);

main.startActivityForResult(cropIntent, PHOTOLAT);

} else if (requestCode == PHOTOLAT) {

// 判斷 剪裁完后的圖片輸出是否存在

// var _file = new File(outPutPath);

// sdk.obj('authorimg').src=outPutPath;

// console.log(outPutPath);

//這里是否存在的判斷還是需要的

// var a = _file.exists();

//查看本地是否有緩存圖片 進(jìn)行刪除

// _file.remove( function ( entry ) {

// plus.console.log( "Remove succeeded" );

// }, function ( e ) {

// alert( e.message );

// });

//壓縮圖片

// plus.zip.compressImage({

// src:outPutPath,

// dst:"_doc/header.jpg",

// quality:20

// },

// function() {

// alert("Compress success!");

// },function(error) {

// alert("Compress error!");

// });

//上傳頭像->然后進(jìn)行處理,上傳完畢之后 需要?jiǎng)h除頭像圖片

// 判斷 剪裁完后的圖片輸出是否存在

var _file = new File(outPutPath);

var a = _file.exists();

if(a){

upload(outPutPath);

}else{

mui.toast('上傳失敗')

}

}

};

}

//拍照獲取

function getImage() {

//開(kāi)始拍照

var cmr = plus.camera.getCamera();

cmr.captureImage(function(p) {

//拍照成功調(diào)用的函數(shù)

plus.io.resolveLocalFileSystemURL(p, function(entry) {

// upload(entry.toLocalURL());

// plus.zip.compressImage({

// src:entry.toLocalURL(),

// dst:"_doc/a.jpg",

// clip:{top:"25%",left:"25%",width:"50%",height:"50%"} // 裁剪圖片中心區(qū)域

// },

// function() {

// alert("Compress success!");

// },function(error) {

// alert("Compress error!");

// });

//裁剪

outPutPath = plus.io.convertLocalFileSystemURL("_downloads/images/5"+parseInt(Math.random()*(99999-10000+1)+1000)+".jpg");

var file = new File(outPutPath);

// 輸出目錄uri

var outPutUri = Uri.fromFile(file);

//拍照回來(lái)的絕對(duì)路徑

var path = entry.toLocalURL();

//去掉\\或者file://

path = path.replace("\\", "");

path = path.replace("file://", "");

var _file = new File(path);

var a = _file.exists();

// alert(a);

//絕對(duì)路徑轉(zhuǎn)uri

var curCropUri = Uri.fromFile(new File(path));

console.log("uri:" + curCropUri);

//裁切

var cropIntent = new Intent("com.android.camera.action.CROP");

cropIntent.setDataAndType(curCropUri, IMAGE_UNSPECIFIED);

// 截圖完畢后 輸出目錄

cropIntent.putExtra(MediaStore.EXTRA_OUTPUT, outPutUri);

cropIntent.putExtra("crop", "true");

// aspectX aspectY 是寬高的比例

cropIntent.putExtra("aspectX", 40);

cropIntent.putExtra("aspectY", 55);

// outputX outputY 是裁剪圖片寬高

cropIntent.putExtra("outputX", 64);

cropIntent.putExtra("outputY", 64);

cropIntent.putExtra("return-data", true);

main.startActivityForResult(cropIntent, 1);

main.onActivityResult = function(requestCode, resultCode, data) {

//裁剪成功圖片上傳

// upload(outPutPath);

// // 判斷 剪裁完后的圖片輸出是否存在

var _file2 = new File(outPutPath);

console.log(outPutPath);

var a2 = _file2.exists();

// alert(a2);

if(a2){

upload(outPutPath);

}else{

mui.toast('上傳失敗')

}

};

//上傳

}, function(e) {

console.log("讀取拍照文件錯(cuò)誤:" + e.message);

});

}, function(e) {

console.log("失敗:" + e.message);

}, {

filename: "_doc/camera/",

index: 1

});

}

//圖片點(diǎn)擊處理

function showActionSheet() {

// alert(outPutPath);

var bts = [{

title: "本地相冊(cè)",

style: "destructive"

}, {

title: "拍照"

}]; //暫時(shí)不支持{title:"拍照"}

plus.nativeUI.actionSheet({

cancel: "取消",

buttons: bts

},

function(e) {

if (e.index == 1) {

//1 本地相冊(cè),包括裁剪

galleryImg();

} else if (e.index == 2) {

//2 拍照

getImage();

} else {

//3 取消

}

}

);

}

總結(jié)

以上是生活随笔為你收集整理的android相册拍照剪切上传封装,安卓,图片裁剪上传真机测试好使,打包后显示:无法保存裁剪的图像...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。