sln camera - eju-front/mobile-solution GitHub Wiki

拍照与浏览图库

目的

可以从拍照或者图库中获得照片

安装指南

安装 camera 插件,使用文档见 cordova-plugin-camera

cordova plugin add cordova-plugin-camera

使用方法

编写代码

function setOptions(srcType) {
    var options = {
        // Some common settings are 20, 50, and 100
        quality: 50,
        destinationType: Camera.DestinationType.FILE_URI,
        sourceType: srcType,
        encodingType: Camera.EncodingType.JPEG,
        mediaType: Camera.MediaType.PICTURE,
        allowEdit: false,	//是否允许编辑图片
        correctOrientation: true  //Corrects Android orientation quirks
    };
    return options;
}

// 显示图片
function displayImage(imgUri) {
    var preview = document.getElementById('preview');
    preview.src = imgUri;
}

function pickImage(opt) {
  	// 从照相机获得图片
    var srcType = Camera.PictureSourceType.CAMERA;
  	// 从图库获得图片
    if (opt.type == 'picker') {
        srcType = Camera.PictureSourceType.SAVEDPHOTOALBUM;
    }
    var options = setOptions(srcType);

  	// 是否使用缩略图
    if (opt.thumb) {
        options.targetHeight = 100;
        options.targetWidth = 100;
    }

    navigator.camera.getPicture(function cameraSuccess(imageUri) {
        displayImage(imageUri);
        console.log(imageUri);
    }, function cameraError(error) {
        console.debug("Unable to obtain picture: " + error, "app");
    }, options);
}

调用以上代码

pickImage({type: 'picker', thumb: true});
  • type 的值为 camerapicker 两种,前者用于从照相机获得图片,后者从图库获得图片
  • thumb 表示是否以缩略图形式显示