5+sdk封装的内容特别强大,只需要简简单单的一些代码就可以了,下面直接上代码
function captureImage(){
var cmr = plus.camera.getCamera();//获取摄像头对象
var res = cmr.supportedImageResolutions[2];//获取支持的分辨率,这里是第三个分辨率,直接使用supportenImageResolutions可以获取自己手机所支持的分辨率有多少种格式,返回值类型 string[]
var fmt = cmr.supportedImageFormats[0];//JPG格式,我的VIVO只支持JPG
cmr.captureImage( function( path ){//成功回调函数,获取路径
alert( "拍照成功" );
plus.gallery.save( path, function () { //将图片保存到系统路径,再通过gallery.pick才能获取到,其实在captureImage成功回调之后图片已经被保存到了你打包的APP的目录下,但是默认情况下该目录是隐藏的,通过gallery对象来获取图片,发现并不能获得照片,几遍指定了filename参数这个文件路径也无法获取,获取的目录仍然是系统相册目录,为此,在拍照成功后,把图片再保存到系统相册中,当使用gallery获取图片的时候就能看到,缺点是这样的话会保存两张图片,一张在系统相册,另外一张在APP默认路径。目前由于本人刚学还没找到方法可以直接选择APP中被隐藏的图片。
//alert( "保存图片到相册成功" );
} );
},
function( error ) {
alert( "Capture image failed: " + error.message );
},
{resolution:res,format:fmt}//分辨率和格式,必填,就是上面获取到的。
);
}
gallery获取相片,单选或者多选:
function galleryImg() {
// 从相册中选择图片
console.log("从相册中选择图片:");
plus.gallery.pick( function(path){
console.log(path);
}, function ( e ) {
console.log( "取消选择图片" );
}, {filter:"image",filename:'_documents/siyuan/'} );//过滤器,只要照片 ,filename指定选择路径,但是好像并没什么用,都是在系统相册中选择
}
// 从相册中选择多张图片
function galleryImgs(){
// 从相册中选择图片
console.log("从相册中选择多张图片:");
plus.gallery.pick( function(e){
for(var i in e.files){
console.log(e.files[i]);
}
}, function ( e ) {
console.log( "取消选择图片" );
},{filter:"image",multiple:true});//过滤器只要图片,多选
}