拍照后裁剪照片(Native.js for Android和H5+混合)
var cmr = plus.camera.getCamera();
cmr.captureImage(function(p) {//调用摄像头拍照
plus.io.resolveLocalFileSystemURL(p, function(entry) {
var IMAGE_UNSPECIFIED = "image/*";
var PHOTOZOOM = 2; // 获取完图片返回key
var PHOTOLAT = 1; // 剪裁完毕后返回key
var main = plus.android.runtimeMainActivity();
var Intent = plus.android.importClass("android.content.Intent");
var MediaStore = plus.android.importClass("android.provider.MediaStore");
var File = plus.android.importClass("java.io.File");
var Uri = plus.android.importClass("android.net.Uri");
var intent = new Intent(Intent.ACTION_PICK, null);
var outPutPath = plus.io.convertLocalFileSystemURL("_doc/camera/5566.jpg");
var file = new File(outPutPath);
// 输出目录uri
var outPutUri = Uri.fromFile(file);
//拍照回来的绝对路径
var path = entry.toLocalURL();
//去掉\\或者file://
path = path.replace("\\", "");
path = path.replace("file://", "");
var _file = new File(path);
var a = _file.exists();
//绝对路径转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", 1);
cropIntent.putExtra("aspectY", 1);
// outputX outputY 是裁剪图片宽高
cropIntent.putExtra("outputX", 500);
cropIntent.putExtra("outputY", 500);
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();
if(a2) {
console.log(outPutPath);//最后照片的路径
} else {
console.log("失败");
}
};
/*end*/
}, function(e) {
});
}, function(e) {
}, {
filename: "_doc/camera/",
index: 1
});