`
fanfanlovey
  • 浏览: 73677 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

三、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 进行相关的操作
分享到:
评论
1 楼 tda7088 2016-07-05  
赞一个,正好解决了我的问题

相关推荐

    二、phoneGap项目中使用二维码扫描功能

    为了提高用户体验,可以考虑使用实时预览功能,即在扫描过程中持续显示相机画面和扫描结果。此外,还可以根据需求调整扫描设置,比如扫描区域大小、对焦模式等。 总之,集成二维码扫描到PhoneGap项目主要涉及选择...

    phonegap api中文手册

    **加速度计**是PhoneGap API中的一个重要模块,用于获取设备在X、Y、Z三个方向上的物理加速度。它主要用于监测设备的物理运动,比如摇晃、倾斜等动作。 - **方法** - `accelerometer.getCurrentAcceleration()`: ...

    PhoneGap-拍照上传DEMO

    PhoneGap是基于Apache Cordova的,它提供了一个跨平台的开发环境,让开发者可以使用Web技术创建应用,同时能够访问设备的硬件功能,如摄像头、GPS、加速度计等。PhoneGap通过其API接口将这些功能暴露给Web应用程序,...

    PhoneGap Camera插件调用 Demo下载

    在这个“PhoneGap Camera插件调用 Demo”中,我们将探讨如何实现拍照和从图库选择图片的功能。 首先,我们需要理解PhoneGap的工作原理。PhoneGap通过WebView将Web应用与设备的原生API连接起来,使得JavaScript可以...

    Phonegap拍照,图片保存应用

    在"PhoneGap拍照,图片保存应用"这个主题中,我们将探讨如何利用PhoneGap API调用Android设备的摄像头功能,并将拍摄的照片保存到应用内部。以下是一些关键的知识点: 1. **PhoneGap安装与配置**:首先,你需要在...

    android之PhoneGap入门实例

    另一部分是后端的原生插件,这些插件允许Web代码与设备的硬件功能进行交互,如访问相机、存储、GPS定位等。PhoneGap提供了一系列预定义的API,开发者可以通过调用这些API来访问设备功能。 在"HelloWorld"这个示例中...

    phonegap开发中JS与Android之间的交互

    调试PhoneGap应用可以使用Chrome开发者工具的远程调试功能,或者使用像Weinre这样的远程调试工具。对于Android端的Java代码,可以使用Android Studio的内置调试器。 9. **打包与发布** 在开发完成后,PhoneGap ...

    phoneGAP2.9.1.zip

    - **设备API访问**:通过PhoneGap,Web应用可以访问手机硬件功能,如相机、联系人、地理位置等,增强了应用的实用性。 2. **PhoneGap 2.9.1的关键特性:** - **设备API**:包括了对各种设备特性的支持,如摄像头...

    phonegap源码+示例

    它们通常展示了如何使用PhoneGap API进行基本操作,如调用设备相机、存储数据、显示通知等。通过分析和运行这些示例,新手开发者能快速上手。 4. **平台适配**:Cordova2.9的源代码包含了针对各个平台的特定实现,...

    phonegap模版

    PhoneGap的核心概念是利用Web技术来创建应用,然后通过PhoneGap的桥接机制,将这些Web应用与设备的硬件功能(如相机、地理位置、通知等)连接起来。模板的存在就是为了让这个过程变得更加高效。 在描述中提到的...

    phonegap+jqueryMobilejs源码项目

    5. **PhoneGap API使用**:在项目中,我们可以看到JavaScript代码如何调用PhoneGap的API,例如获取设备信息、访问本地文件系统、调用设备相机等。这些API使Web应用能够充分利用移动设备的功能。 6. **firstscreen...

    phoneGap-android实现拍照和选择图库

    在PhoneGap中,使用`navigator.camera`对象提供的API来实现拍照功能。调用`getPicture`方法,可以打开设备的摄像头,拍摄照片。这个方法接受三个参数:一个成功回调函数,一个错误回调函数,以及配置选项,如是否...

    phoneGap1.0

    2. **API集成**:PhoneGap提供了一系列API,使得Web应用可以访问手机的硬件功能,包括相机、GPS、联系人、加速计、媒体播放器等。例如,通过Camera API,开发者可以实现拍照或选择手机中的图片功能。 3. **本地存储...

    phonegap拍照上传

    在"phonegap拍照上传"这个主题中,我们将探讨如何使用PhoneGap来实现在移动应用中拍照并上传到服务器的功能。这一过程通常包括以下几个关键步骤: 1. **安装和配置PhoneGap**:首先,你需要在本地环境安装PhoneGap...

    phonegap开发插件合集

    这个"phonegap-phonegap-plugins-2dc6525"压缩包中的所有这些插件都是PhoneGap社区的贡献,它们经过了多次迭代和优化,旨在帮助开发者轻松地增强其应用的功能。通过集成这些插件,开发者可以充分利用PhoneGap的跨...

    PhoneGap,API帮助文档.zip

    下面我们将深入探讨PhoneGap API中的关键组件及其功能。 1. **加速度计(Accelerometer)**:加速度计API允许应用程序获取设备的运动数据,包括X、Y、Z轴上的加速度。这在游戏开发或运动监测应用中非常有用,例如...

    Android和PhoneGap打包本地网站和在线网站

    在Android和PhoneGap中访问相机功能,可以使用PhoneGap的Camera API。这个API允许应用启动设备的摄像头,拍摄照片或者选择已有的图片。使用方法如下: 1. 调用`navigator.camera.getPicture()`函数,传入回调函数来...

    PhoneGap简单示例

    4. PhoneGap API:这是PhoneGap的核心部分,包括了如设备信息、文件系统、网络状态、通知、相机、媒体、地理定位等接口。通过这些API,JavaScript可以与设备的底层功能进行交互。 5. 构建环境:PhoneGap Desktop ...

Global site tag (gtag.js) - Google Analytics