首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

3、phoneGap中使用相机功能

2013-07-04 
三、phoneGap中使用相机功能今天用了phoneGap的camera功能,操作很简单,下面记录操作步骤,方便以后查看,详细

三、phoneGap中使用相机功能
  今天用了phoneGap的camera功能,操作很简单,下面记录操作步骤,方便以后查看,详细解说可以参考官网api,
地址为:http://docs.phonegap.com/en/2.3.0/cordova_camera_camera.md.html#Camera
  1、创建项目,这项目叫cameraTest;
  2、修改config.xml文件
   在<plugins></plugins>之间看下是否有下面配置参数信息,如有则OK,没有需要加上

<plugin name="Compass" value="CDVLocation" />

  3、编写代码:
    在index.html下面写入如下代码
<!DOCTYPE html><html>  <head>    <title>Capture Photo</title>    <script type="text/javascript" charset="utf-8" src="js/cordova-2.3.0.js"></script>    <script type="text/javascript" charset="utf-8"><!DOCTYPE html><html>  <head>    <title>Capture Photo</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <script type="text/javascript" charset="utf-8" src="cordova-2.3.0.js"></script>    <script type="text/javascript" charset="utf-8">    var pictureSource;  //图片来源    var destinationType; //返回的图片数据格式    document.addEventListener("deviceready",onDeviceReady,false);    // 设备初始化之后调用    function onDeviceReady() {        pictureSource=navigator.camera.PictureSourceType;        destinationType=navigator.camera.DestinationType;    }        //拍照之后成功调用方法    function onPhotoDataSuccess(imageData) {      var smallImage = document.getElementById('smallImage');      smallImage.style.display = 'block';  //显示拍摄的照片      smallImage.src = "data:image/jpeg;base64," + imageData;    }    //从相册中选择照片成功之后调用方法    function onPhotoURISuccess(imageURI) {      var largeImage = document.getElementById('largeImage');      largeImage.style.display = 'block';      largeImage.src = imageURI;    }    //获取拍照照片    function capturePhoto() {      navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50,        destinationType: destinationType.DATA_URL });    }//获取拍照照片,可以对其进行编辑    function capturePhotoEdit() {      navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 20, allowEdit: true,        destinationType: destinationType.DATA_URL });    }    //从相册中获取照片    function getPhoto(source) {      navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50,         destinationType: destinationType.FILE_URI,        sourceType: source });    }    //拍照取消或者拍照失败调用函数    function onFail(message) {      alert('Failed because: ' + message);    }    </script>  </head>  <body>    <button onclick="capturePhoto();">只获取拍照图片</button> <br><br><br>    <button onclick="capturePhotoEdit();">获取拍照图片并且可以编辑</button><br><br> <br>    <button onclick="getPhoto(pictureSource.PHOTOLIBRARY);">从相册中获取照片</button><br><br><br>    <button onclick="getPhoto(pictureSource.SAVEDPHOTOALBUM);">从拍摄的照片中获取照片</button><br><br><br>    <img style="display:none;width:60px;height:60px;" id="smallImage" src="" />    <img style="display:none;" id="largeImage" src="" />  </body></html>    </script>  </head>  <body>    <button onclick="capturePhoto();">Capture Photo</button> <br>    <button onclick="capturePhotoEdit();">Capture Editable Photo</button> <br>    <button onclick="getPhoto(pictureSource.PHOTOLIBRARY);">From Photo Library</button><br>    <button onclick="getPhoto(pictureSource.SAVEDPHOTOALBUM);">From Photo Album</button><br>    <img style="display:none;width:60px;height:60px;" id="smallImage" src="" />    <img style="display:none;" id="largeImage" src="" />  </body></html>

下面对涉及到的一些参数信息做一些备注
1、cameraOptions
      quality:存储图像的质量,范围是[0,100]。(数字类型)
       destinationType:选择返回数据的格式。通过navigator.camera.DestinationType进行定义。(数字类型)
Camera.DestinationType = {                   DATA_URL : 0, //返回Base64编码字符串的图像数据                      FILE_URI : 1 //返回图像文件的URI                 }   

2、sourceType:设定图片来源
    通过nagivator.camera.PictureSourceType进行定义。(数字类型)
  
      Camera.PictureSourceType = {             PHOTOLIBRARY : 0,   //来源相册            CAMERA : 1,         //默认,来源相机            SAVEDPHOTOALBUM : 2  //来源拍摄的照片      }    
  
3、allowEdit:
      在选择图片进行操作之前允许对其进行简单编辑。(布尔类型)
4、EncodingType:
     选择返回图像文件的编码方式,通过navigator.camera.EncodingType进行定义。(数字类型)
  
Camera.EncodingType = {          JPEG : 0, // 返回JPEG格式图片            PNG : 1 // 返回PNG格式图片         };     

5、camera.cleanup
清空使用摄像头拍照时候产生的缓存文件.
当我们使用如下参数的时候会产生临时文件
Camera.sourceType = Camera.PictureSourceType.CAMERA and Camera.destinationType = Camera.DestinationType.FILE_URI
通过调用下列方法清除缓存
navigator.camera.cleanup( cameraSuccess, cameraError );
可以自定义cameraSuccess,cameraError 进行相关的操作

热点排行