Camera类
通过getPicture获取图片
cameraOption常用属性
- quality
- destinationType
- allowEdit:true
- encodingType
- targetWidth
- targetHeight
- saveToPhotoAlbum
图片显示
实例
var destinationType=cameraOption.destinationType|Camera.DestinationType.FILE_URI;//编码类型
var sourceType=cameraOption.sourceType|Camera.DestinationType.SAVEDPHOTOALBUM;//获取路径
navigator.camera.getPicture(getpicture_success, getpicture_Error,
{quality:quality, //图像质量
destinationType:destinationType,//编码类型
sourceType:sourceType//获取路径
});
http://blog.csdn.net/mengxiangyue/article/details/8796254
Camera提供了两个方法:
camera.getPicture
camera.cleanup
在使用Camera对象之前需要配置一下:
app/res/xml/config.xml
<plugin name="Camera" value="org.apache.cordova.CameraLauncher" />
app/AndroidManifest
<uses-permission Android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
首先介绍第一个方法:
navigator.camera.getPicture( cameraSuccess, cameraError, [ cameraOptions ] );
选择使用摄像头拍照,或从设备相册中获取一张照片。图片以base64编码的字符串或图片URI形式返回。
对于cameraOptions 在后面会介绍,这个主要是使用这个方法时候的配置参数.
camera.getPicture函数打开设备的默认摄像头应用程序,使用户可以拍照(如果 Camera.sourceType 设置为 Camera.PictureSourceType.CAMERA,这也是默认值)。一旦拍照结束,摄像头应用程序会关闭并恢复用户应用程序。
如果Camera.sourceType = Camera.PictureSourceType.PHOTOLIBRARY或Camera.PictureSourceType.SAVEDPHOTOALBUM,系统弹出照片选择对话框,用户可以从相集中选择照片。
返回值会按照用户通过cameraOptions参数所设定的下列格式之一发送给cameraSuccess回调函数:
一个字符串,包含Base64编码的照片图像(默认情况)。
一个字符串,表示在本地存储的图像文件位置。
下面看一个简单的例子
- <!DOCTYPE html>
- <html>
- <head>
- <title>Capture Photo</title>
- <script type="text/javascript" charset="utf-8" src="js/cordova-2.6.0.js"></script>
- <script type="text/javascript" charset="utf-8">
- var pictureSource; //设定图片来源
- var destinationType; //选择返回数据的格式
- document.addEventListener("deviceready",onDeviceReady,false);
- // Cordova准备好了可以使用了
- function onDeviceReady() {
- pictureSource=navigator.camera.PictureSourceType;
- destinationType=navigator.camera.DestinationType;
- }
- function onPhotoDataSuccess(imageData) {
- // base64 encoded image data
- var smallImage = document.getElementById('smallImage');
- smallImage.style.display = 'block';
- //在使用base64编码的时候需要使用这样的前缀
- smallImage.src = "data:image/jpeg;base64," + imageData;
- }
- // Called when a photo is successfully retrieved
- //
- function onPhotoURISuccess(imageURI) {
- // image file URI
- var largeImage = document.getElementById('largeImage');
- largeImage.style.display = 'block';
- //使用image file URI 直接赋值就可以了
- 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) {
- // Retrieve image file location from specified 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();">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>
运行效果如下:
小图片是第一二个按钮拍照后显示的地方,大图片是三四按钮从相簿中选择后显示的.
下面介绍cameraOptions:
一般格式如下:
- { quality : 75,
- destinationType : Camera.DestinationType.DATA_URL,
- sourceType : Camera.PictureSourceType.CAMERA,
- allowEdit : true,
- encodingType: Camera.EncodingType.JPEG,
- targetWidth: 100,
- targetHeight: 100,
- popoverOptions: CameraPopoverOptions,
- saveToPhotoAlbum: false };
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同时使用。相应的宽高比保持不变。(数字类型)
这些属性并不是在所有的设备上都起作用,具体的每个设备的支持情况还请参照官方文档.
下面介绍第二个方法
camera.cleanup
清空使用摄像头拍照时候产生的缓存文件.
当我们使用如下参数的时候会产生临时文件,这时候使用这个方法会及时的清楚临时文件.
Camera.sourceType = Camera.PictureSourceType.CAMERA and Camera.destinationType = Camera.DestinationType.FILE_URI
使用方法如下:
navigator.camera.cleanup( cameraSuccess, cameraError );
这个方法的回调方法中没有参数,只是去调用对应的方法,可以在对应的方法中alert一些东西,判断是否清空了.
相关推荐
这个“phonegap-1.0.0rc2.zip”文件是PhoneGap的一个早期版本,版本号为1.0.0 Release Candidate 2,这表明它是一个在正式版本发布前的候选版本,可能包含了对早期版本的改进和修复。 PhoneGap的核心理念在于利用...
这里的焦点是“android_phonegap-0.9.5.1.jar”,这是PhoneGap的一个早期版本,对于理解其发展历史和技术原理至关重要。 PhoneGap 0.9.5.1是针对Android平台的一个版本,这个版本的发布标志着PhoneGap在Android生态...
最新版本的phonegap-2.9.1是没有cordova-2.9.1.jar的,这里打包好给大家。
PhoneGap Desktop Beta 0.4.4是这个框架的一个早期版本,适用于Windows操作系统,特别强调了其作为桌面应用的形式。在官方渠道下载困难的情况下,此压缩包提供了一个方便的下载途径。 PhoneGap的核心理念是利用Web...
在这个场景中,我们关注的是一个名为`phonegap-plugin-barcodescanner`的插件,这是一个专门为PhoneGap/Cordova设计的扫码功能插件。 这个插件的主要作用是在iOS和Android等平台上实现条形码和二维码的扫描功能。...
这个“phonegap-phonegap-1.0.0-0-g80cc6dd.zip”文件是PhoneGap的一个特定版本,版本号为1.0.0,Git提交ID为80cc6dd,这通常代表了该版本在开发过程中的一个快照。 PhoneGap的核心理念是利用Web技术来实现原生移动...
标题中的"phonegap-phonegap-1.6.0-0-g66780d6.rar"表明这是一个关于PhoneGap 1.6.0版本的压缩包,版本号后的"g66780d6"可能代表Git的提交哈希值,意味着这是一个特定的源码版本。 PhoneGap的主要优势在于它的跨...
这个“phonegap-phonegap-1.8.1-0-gce32a3f.zip”文件是一个特定版本的PhoneGap框架的归档,版本号为1.8.1,对应的Git提交哈希值是gce32a3f。这个压缩包可能包含了运行和开发基于PhoneGap 1.8.1项目所需的所有文件。...
phonegap-cli, PhoneGap和 PhoneGap/构建 命令行 接口 PhoneGap命令行接口和 node.js 库。命令行命令行要求安装 node.js 版本 >=4.0.0安装 iOS sim 将应用程序部署到iOS模拟器。安装$ npm install
这个“phonegap-2.9.1.zip”文件包含的是PhoneGap的2.9.1版本,该版本发布于2014年左右,是一个相对早期的版本。在那时,PhoneGap已经成为跨平台移动开发的热门选择,特别是对于那些希望利用Web技术快速开发多平台...
这个“PhoneGap-TestApp-源码.rar”文件很可能包含了使用PhoneGap框架创建的一个测试应用程序的完整源代码。下面将详细讨论PhoneGap的关键概念和技术。 1. **PhoneGap基础**: - PhoneGap是Apache Cordova的商业...
7. **预览和打包**:提供本地服务器预览应用的功能,以及打包成可部署的HTML5应用或本地桌面应用(如使用PhoneGap)。 在压缩包中的"SenchaCmd-6.5.3.6-windows-64bit.exe"是安装程序,用户需要运行此文件来安装...
phonegap-angular-ratchet, 使用AngularJS框架棘轮用户界面和Fastclick的Phonegap应用程序示例 phonegap-angular-ratchet使用 Angular JS 。棘轮UI和FastClick的PhoneGap应用示例PhoneGap应用需要特别关注和注意以...
这个压缩包 "phonegap-build-maven-plugin-0.0.5.zip" 包含了 Maven 插件的源代码和相关资源,使得开发者能够将其集成到自己的 Maven 项目中。使用 Maven 插件,开发者可以设置配置参数,如 API 密钥、应用 ID、版本...
"jpush-phonegap-plugin-master" 是一个针对 PhoneGap 框架的 JPush 插件,适用于 Ionic2 应用程序。PhoneGap 是一种跨平台的移动应用开发框架,它允许开发者使用 HTML、CSS 和 JavaScript 来构建原生的移动应用。...
PhoneGap 1.6.0:: Prerequisite Software PhoneGap requires you have the following software installed: 1. Eclipse Integrated Design Environment (IDE), a program to write code and manage software ...
PhoneGap插件条形码扫描仪 =============================== 适用于Cordova / PhoneGap的跨平台BarcodeScanner。 遵循,因此可与一起。 安装 ... phonegap plugin add phonegap-plugin-barcodesc
在这个名为“Phonegap-LocalNotification-master”的项目中,我们聚焦于PhoneGap的一个重要特性——本地通知(Local Notifications),尤其针对Android平台。 本地通知是移动应用中的一个重要功能,它可以在应用...
"phonegap-connection" 指的是 PhoneGap 中处理设备网络连接状态的功能。在开发移动应用时,了解设备的网络连接状态是至关重要的,因为它直接影响到应用的功能,如数据同步、在线服务访问等。 在 PhoneGap 中,`...
【jpush-phonegap-plugin】是基于PhoneGap框架的一个插件,用于集成极光推送(JPush)服务到移动应用中。PhoneGap是一种流行的混合移动应用开发框架,它允许开发者使用HTML、CSS和JavaScript来构建跨平台的应用程序...