phonegap的照相机 API

一、 Camera Api 简单介绍

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

  方法:

    1. camera.getPicture 拍照获取相册图片 navigator.camera.getPicture( cameraSuccess, cameraError, [ cameraOptions ] );

      cameraSuccess:提供图像数据的 onSuccess 回调函数。

      cameraError:提供错误信息的 onError 回调函数。

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

    2. camera.cleanup 清除拍照后设备的缓存图片

      navigator.camera.cleanup( cameraSuccess, cameraError );

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

      quality : 存储图像的质量,范围是[0,100]。

      destinationType :选择返回数据的格式。

          DATA_URL :0, // Return image as base64-encoded string

          FILE_URI :1, // Return image file URI

          NATIVE_URI :2 // Return image native URI (e.g. assets-library:// on iOS or content:// on Android)

      sourceType :设定图片来源。data:image/jpeg;base64,

          PHOTOLIBRARY :0,//拍完照后图片的路劲从图库中获取

          CAMERA :1,//拍完照后图片的路劲从设备照相机中获取

          SAVEDPHOTOALBUM :2//拍完照后图片的路劲从相册中获取

      allowEdit :在选择图片进行操作之前允许对其进行简单编辑。(好像只有 ios 支持,在 Android 中,忽略 allowEdit 参数。)

      encodingType :选择返回图像文件的编码方 encodingType: Camera.EncodingType.JPEG

      targetWidth :以像素为单位的图像缩放宽度指定图片展示的时候的宽度

      targetHeight :以像素为单位的图像缩放高度指定图片展示的时候的高度

      saveToPhotoAlbum:拍完照片后是否将图像保存在设备上的相册

      mediaType 设置选择媒体的类型

          PICTURE:0, // allow selection of still pictures only.DEFAULT. Will return format specified via DestinationType

          VIDEO:1, // allow selection of video only, WILL ALWAYS RETURN FILE_URI

          ALLMEDIA :2 // allow selection from all media types

      cameraDirection 选择前置摄像头还是后置摄像头

          BACK :0, // Use the back-facing camera

          FRONT :1 // Use the front-facing camera

    Camera.PictureSourceType.PHOTOLIBRARY 或 Camera.PictureSourceType.SAVEDPHOTOALBUM 都会显示同一个相集。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>phonegap_device_network_notification01</title>
<link href="../jquery.mobile-1.3.2.css" rel="stylesheet" type="text/css"/>
<script src="../jquery.js" type="text/javascript"></script>
<script src="../jquery.mobile-1.3.2.js" type="text/javascript"></script>
<script src="../cordova.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function(){
            document.addEventListener("deviceready", myDeviceReadyListener, false);
    });
     function myDeviceReadyListener(){
         $(‘#btn_getPic‘).click(function(){
             navigator.camera.getPicture(onSuccess, onFail, {
                quality: 70,
                destinationType: Camera.DestinationType.DATA_URL, //以文件地址返回url  这里进行了编码,成功拍照获取图片路径对应的方式如下
                //sourceType:Camera.PictureSourceType.Camera, //摄像机获取,调用拍照
                sourceType:Camera.PictureSourceType.PHOTOLIBRARY, //从图库中选取图片,不用调用拍照
                targetWidth:200,
                targetHeight:200
            });

         })
    }
    //成功  回调函数里包含图片的地址
    function onSuccess(imageURI){
        alert(imageURI);
        $(‘#img_pic‘).css(‘display‘,‘block‘);
        $(‘#img_pic‘).attr("src","data:image/jpeg;base64," + imageURI);
        //image.src = "data:image/jpeg;base64," + imageData;

    }

    //失败  回调函数李包含失败返回的信息
    function onFail(message) {
        alert(‘Failed because: ‘ + message);
    }

</script>
</head>
<body>
<div data-role="page">
        <div data-role="header">
            <h1>Camera</h1>
        </div>
        <div data-role="content">
            <img style="dispaly:none" id="img_pic"/>
            <a id="btn_getPic" href="#" data-role="button">拍照</a>
        </div>
        <div data-role="footer">
            <h4>&nbsp;</h4>
        </div>
</div>

</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>phonegap_device_network_notification01</title>
<link href="../jquery.mobile-1.3.2.css" rel="stylesheet" type="text/css"/>
<script src="../jquery.js" type="text/javascript"></script>
<script src="../jquery.mobile-1.3.2.js" type="text/javascript"></script>
<script src="../cordova.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function(){
            document.addEventListener("deviceready", myDeviceReadyListener, false);
    });
     function myDeviceReadyListener(){
         $(‘#btn_getPic‘).click(function(){
             navigator.camera.getPicture(onSuccess, onFail, {
                 quality: 70,
                destinationType: Camera.DestinationType.FILE_URI, //以文件地址返回url
                sourceType:Camera.PictureSourceType.Camera,
                targetWidth:300,
                targetHeight:300
            });

         })
    }
    //成功
    function onSuccess(imageURI) {
        alert(imageURI);
        $(‘#img_pic‘).css(‘display‘,‘block‘);
        $(‘#img_pic‘).attr("src",imageURI);//这种获取图片路径的方式对应的是destinationType: Camera.DestinationType.FILE_URI

    }

    //失败
    function onFail(message) {
        alert(‘Failed because: ‘ + message);
    }

</script>
</head>
<body>
<div data-role="page">
        <div data-role="header">
            <h1>Camera</h1>
        </div>
        <div data-role="content">
            <img style="dispaly:none" id="img_pic"/>
            <a id="btn_getPic" href="#" data-role="button">拍照</a>
        </div>
        <div data-role="footer">
            <h4>&nbsp;</h4>
        </div>
</div>

</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>phonegap_device_network_notification01</title>
<link href="../jquery.mobile-1.3.2.css" rel="stylesheet" type="text/css"/>
<script src="../jquery.js" type="text/javascript"></script>
<script src="../jquery.mobile-1.3.2.js" type="text/javascript"></script>
<script src="../cordova.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function(){
            document.addEventListener("deviceready", myDeviceReadyListener, false);
    });
     function myDeviceReadyListener(){
         $(‘#btn_getPic‘).click(function(){
             navigator.camera.getPicture(onSuccess, onFail, {
                 quality: 70,
                destinationType: Camera.DestinationType.DATA_URL, //以文件地址返回url
                sourceType:Camera.PictureSourceType.Camera,
                targetWidth:100,
                targetHeight:100
            });

         })
    }
    //成功
    function onSuccess(imageURI){
        alert(imageURI);
        $(‘#img_pic‘).css(‘display‘,‘block‘);
        $(‘#img_pic‘).attr("src","data:image/jpeg;base64," + imageURI);
        //image.src = "data:image/jpeg;base64," + imageData;

    }

    //失败
    function onFail(message) {
        alert(‘Failed because: ‘ + message);
    }

</script>
</head>
<body>
<div data-role="page">
        <div data-role="header">
            <h1>Camera</h1>
        </div>
        <div data-role="content">
            <img style="dispaly:none" id="img_pic"/>
            <a id="btn_getPic" href="#" data-role="button">拍照</a>
        </div>
        <div data-role="footer">
            <h4>&nbsp;</h4>
        </div>
</div>

</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>phonegap_device_network_notification01</title>
<link href="../jquery.mobile-1.3.2.css" rel="stylesheet" type="text/css"/>
<script src="../jquery.js" type="text/javascript"></script>
<script src="../jquery.mobile-1.3.2.js" type="text/javascript"></script>
<script src="../cordova.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function(){
            document.addEventListener("deviceready", myDeviceReadyListener, false);
    });
     function myDeviceReadyListener(){
         //从相机拍照获取 base64 编码方式返回
         $(‘#btn_getPic‘).click(function(){
             navigator.camera.getPicture(onSuccess1, onFail, {
                 quality: 70,
                destinationType: Camera.DestinationType.DATA_URL, //以文件地址返回url
                sourceType:Camera.PictureSourceType.Camera,
                targetWidth:100,
                targetHeight:100
            });

         })
         //从图库获取 url
         $(‘#btn_getLibiaryPic‘).click(function(){
             navigator.camera.getPicture(onSuccess2, onFail, {
                 quality: 70,
                destinationType: Camera.DestinationType.FILE_URL, //以文件地址返回url,如果选择的媒体类型是视频,只能是这个方式:FILE_URL
                sourceType:Camera.PictureSourceType.PHOTOLIBRARY,
                mediaType:Camera.MediaType.VIDEO,
                targetWidth:100,
                targetHeight:100
            });

         })

    }
    //成功 相机
    function onSuccess1(imageURI){
        alert(imageURI);
        $(‘#img_pic‘).css(‘display‘,‘block‘);
        $(‘#img_pic‘).attr("src","data:image/jpeg;base64," + imageURI);
        //image.src = "data:image/jpeg;base64," + imageData;

    }
    //成功 图库
    function onSuccess2(imageURI){
        alert(imageURI);
        //$(‘#img_pic‘).css(‘display‘,‘block‘);
       // $(‘#img_pic‘).attr("src",imageURI);

         $("#videocontainer").append("<video height=240 width=300 controls=‘controls‘ src=‘"+imageURI+"‘ >your browder doesn‘t support video tag</video>");
        //image.src = "data:image/jpeg;base64," + imageData;

    }

    //失败
    function onFail(message) {
        alert(‘Failed because: ‘ + message);
    }

</script>
</head>
<body>
<div data-role="page">
        <div data-role="header">
            <h1>Camera</h1>
        </div>
        <div data-role="content">
            <img style="dispaly:none" id="img_pic"/>
            <a id="btn_getPic" href="#" data-role="button">拍照</a>
            <a id="btn_getLibiaryPic" href="#" data-role="button">本地预览</a>
            <div id="videocontainer">
            </div>
        </div>
        <div data-role="footer">
            <h4>&nbsp;</h4>
        </div>
</div>

</body>
</html>
时间: 2024-11-08 13:15:03

phonegap的照相机 API的相关文章

小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载一(PhoneGap中的API)

之前本博连载过<构建跨平台APP:jQuery Mobile移动应用实战>一书.深受移动开发入门人员的喜爱. 从如今開始,连载它的孪生姐妹书phoneGap移动应用实战一书,希望以前是小白的你们,已经变成了大白. 3.6  PhoneGap中的API能干什么 本章主要介绍进行PhoneGap开发前所须要做好的准备,那么如今是不是该介绍一些关于PhoneGap的事了呢?事实上PhoneGap就是将HTML写成的页面显示出来.然后通过特定的JavaScript获取几组数据而已. 尽管说使用Phon

利用Android Camera2 的照相机api 实现 实时的图像采集与预览

最近想要做一个客户端往服务器推送实时画面的功能,首先可以考虑到两种思路,一种是在客户端进行视频流的推送,主要利用RTSP等流媒体协议进行传输,而另外一种是通过摄像头获取当前画面,将每一帧作为对象单独传输. 项目想要实现的功能最终目的是对实时画面的每一帧进行处理,可以考虑客户端推流到服务器,再在服务器进行帧解析的操作,但由于目前很多的流媒体推送框架在推流端或者服务端都或多或少存在限制,很少有完全开源的项目,再加上传送画面的同时需要附带部分的数据,仍然需要另外建立连接进行传输,所以暂时搁置这一方案.

如何使用Ubuntu手机平台中的照相机API来存储照片

在前面的一篇文章中"如何在Ubuntu手机中使用前置照相机",我们可以使用相应的C++代码来控制前后位置的照相机来拍照,但是我们又如何能够把所拍到的照片存储到相应的文件中呢?我们可以使用Qt 5.4版本中的Item所提供的一个新的功能"grabToImage".这样我们可以很方便地把我们得到的照片存到我们相应的目录中. 在Ubuntu手机平台中,由于安全的原因,我们的应用只可以访问自己所在的可以访问的目录.在这个例程中,我们使用了一些环境的变量来得到我们所需要的存储

phonegap 的指南针 api Compass

一. Compass 介绍方法参数   1.Compass 也就是,常说的指南针,又叫罗盘 2.方法 compass.getCurrentHeading compass.watchHeading compass.clearWatch compass.watchHeadingFilter (obsolete)         1.6版本以上不支持 compass.clearWatchFilter (obsolete) 1.6版本以上不支持 3.参数 compassSuccess compassEr

PhoneGap 的文件 api

一. 文件系统的请求 请求文件系统通过 window.requestFileSystem 来完函数声明如下: window.requestFileSystem(type, size, successCallback, errorCallback) type: 文件系统类型 可选参数俩个 LocalFileSystem.PERSISTENT:用于不经过应用程序或者用户许可就无法通过用户代理移除的存储类型. LocalFileSystem.TEMPORARY:用于不需要保证持久化的存储类型. siz

[PhoneGap]开发环境搭建与简单应用

目前,随着Google的Android手机和苹果的iphone手机的逐渐普及,越来越多开发者加入到移动应用开发的大军当中.其中,Android应用是基于Java语言基础上进行开发的,而苹果公司的iphone则是基于C语言开发的.如果开发者编写的应用需要同时在不同的移动设备上运行的话,则必须要掌握多种开发语言.而为了进一步简化移动应用的编程,Nitobi公司推出了一套开源的移动应用解决方案PhoneGap(http://www.phonegap.com). PhoneGap是一款开源的手机应用开发

Phonegap 通信原理

下图为JavaScript调用本地代码的通信过程 Phonegap的核心API都是基于插件的,这些JavaScript API都会调用cordova.exec() 函数来完成操作.cordova.exec()函数如下 cordova.exec(success, fail, service, action, args); 其中success是操作成功后的回调函数 fail是操作失败后的回调函数 service是所要操作的本地服务名称 action是要执行的服务的具体操作 args是操作所需要的参数

面向Web Cloud的HTML5 App开发实战:Browser&amp;HTML5&amp;CSS3&amp;PhoneGap&amp;jQuery Mobile&amp; WebSocket&amp;Node.js(3天)

课程简介: 王家林老师(联系邮箱[email protected] 电话:18610086859 QQ:1740415547 微信号:18610086859) 22个HTML5主题一次性贯穿HTML5的一切技术: 一网打尽HTML5时代Device.(设备端).Browser(浏览器)和Cloud(浏览器)的所有技术: 以浏览器定制技术为基础,通晓HTML5+CSS3+PhoneGap+Web Socket +jQuery Mobile +Node.js等HTML5的六大核心技术: 最新研发的H

构建通过 Database.com 提供技术支持的 PhoneGap 应用程序

要求 其他必要产品 Database.com account 用户级别 全部 必需产品 PhoneGap Build 范例文件 Database.Com-PhoneGap-Sample 在这篇文章中,我们将探究使用 PhoneGap 构建的移动应用程序的创建过程,所有数据 均通过 Database.com 提供并保存.在深入探讨技术细节之前,我们先来回顾一下相关术语. PhoneGap PhoneGap 是一种免费的开放源码技术,旨在使开发人员使用基于 Web 的传统技术,创建能够在多个平台上进