phonegap调用摄像头navigator.camera.getPicture方法

选择使用摄像头拍照,或从设备相册中获取一张照片。图片以base64编码的字符串或图片URI形式返回。

navigator.camera.getPicture( cameraSuccess, cameraError, [ cameraOptions ] );
说明:
camera.getPicture函数打开设备的默认摄像头应用程序,使用户可以拍照(如果 Camera.sourceType 设置为 Camera.PictureSourceType.CAMERA,这也是默认值)。一旦拍照结束,摄像头应用程序会关闭并恢复用户应用程序。
如果Camera.sourceType = Camera.PictureSourceType.PHOTOLIBRARY或Camera.PictureSourceType.SAVEDPHOTOALBUM,系统弹出照片选择对话框,用户可以从相集中选择照片。
返回值会按照用户通过cameraOptions参数所设定的下列格式之一发送给cameraSuccess回调函数:
  • 一个字符串,包含Base64编码的照片图像(默认情况)。
  • 一个字符串,表示在本地存储的图像文件位置。
你可以对编码的图片或URI做任何处理,例如:
  • 通过img标签渲染图片(参看后续范例)
  • 存储为本地数据(LocalStorage,Lawnchair*等)
  • 将数据发送到远程服务器
备注 :较新的设备上使用摄像头拍摄的照片的质量是相当不错的,使用Base64对这些照片进行编码已导致其中的一些设备出现内存问题(如IPHONE4、BlackBerry Torch 9800)。因此,强烈建议将“Camera.destinationType”设为FILE_URI。
支持的平台:
  • Android
  • BlackBerry WebWorks (OS 5.0或更高版本)
  • iPhone
  • Windows Phone 7 ( Mango )
简单的范例:
拍照并获取Base64编码的图像:
navigator.camera.getPicture(onSuccess, onFail, { quality: 50 });

function onSuccess(imageData) {
   var image = document.getElementById('myImage');
   image.src = "data:image/jpeg;base64," + imageData;
}

function onFail(message) {
   alert('Failed because: ' + message);
}

拍照并获取图像文件路径:

navigator.camera.getPicture(onSuccess, onFail, { quality: 50,
                destinationType: Camera.DestinationType.FILE_URI });
                
function onSuccess(imageURI) {
    var image = document.getElementById('myImage');
    image.src = imageURI;
}
    
function onFail(message) {
    alert('Failed because: ' + message);
}

cameraOptions 定制摄像头设置的可选参数。

{    quality : 75,
    destinationType : Camera.DestinationType.DATA_URL,
    sourceType : Camera.PictureSourceType.CAMERA,
    allowEdit : true,
    encodingType : Camera.EncodingType.JPEG,
    targetWidth : 100,
    targetHeight : 100};
  • quality:存储图像的质量,范围是[0,100]。(数字类型)
  • destinationType:选择返回数据的格式。通过navigator.camera.DestinationType进行定义。(数字类型)
    Camera.DestinationType = {
        DATA_URL : 0,    //返回Base64编码字符串的图像数据
        FILE_URI : 1    //返回图像文件的URI
    }
  • sourceType:设定图片来源。通过nagivator.camera.PictureSourceType进行定义。(数字类型)
    Camera.PictureSourceType = {
        PHOTOLIBRARY : 0,
        CAMERA : 1,
        SAVEDPHOTOALBUM : 2
    }
  • allowEdit:在选择图片进行操作之前允许对其进行简单编辑。(布尔类型)
  • EncodingType:选择返回图像文件的编码方式,通过navigator.camera.EncodingType进行定义。(数字类型)
    Camera.EncodingType = {
        JPEG : 0,        // 返回JPEG格式图片
        PNG : 1            // 返回PNG格式图片
    };
    • targetWidth:以像素为单位的图像缩放宽度,必须和targetHeight同时使用。相应的宽高比保持不变。(数字类型)
    • targetHeight:以像素为单位的图像缩放高度,必须和targetWidth同时使用。相应的宽高比保持不变。(数字类型)
    • MediaType:设置选择图片的类型,只有当PictureSourceType is PHOTOLIBRARY or SAVEDPHOTOALBUM时才会生效,该参数由nagivator.camera.MediaType (数字类型)定义
      Camera.MediaType = { 
          PICTURE: 0, // allow selection of still pictures only. DEFAULT. Will return format specified via DestinationType  
                      //默认值,返回的是Picture,返回由DestinationType指定的格式
          VIDEO: 1,  // allow selection of video only, WILL ALWAYS RETURN FILE_URI  
                      //选出的只能是video类型,返回值是FILE_URI
          ALLMEDIA : 2  //allow selection from all media types      允许选出的是所有类型
      }

       

 

转载于:https://www.cnblogs.com/chaser-li/p/7250754.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值