zoukankan      html  css  js  c++  java
  • 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      允许选出的是所有类型
        }
     
  • 相关阅读:
    复习清单
    pat 1132 Cut Integer(20 分)
    pat 1013 Battle Over Cities(25 分) (并查集)
    pat 1100 Mars Numbers(20 分)
    pat 1108 Finding Average(20 分)
    OpenCV入门学习资料汇总
    SIFT算法问题issue1
    《机器学习》瓜书—周志华
    Pycharm配置
    在cmd下可以import cv2,而Pycharm报错:找不到cv2
  • 原文地址:https://www.cnblogs.com/chaser-li/p/7250754.html
Copyright © 2011-2022 走看看