三、phoneGap中使用相机功能

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

[b] 3、编写代码:[/b]
在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>

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

[b]2、sourceType:设定图片来源[/b]。
通过nagivator.camera.PictureSourceType进行定义。(数字类型)

Camera.PictureSourceType = {
PHOTOLIBRARY : 0, //来源相册
CAMERA : 1, //默认,来源相机
SAVEDPHOTOALBUM : 2 //来源拍摄的照片
}

[b]3、allowEdit:[/b]
在选择图片进行操作之前允许对其进行简单编辑。(布尔类型)
[b]4、EncodingType:[/b]
选择返回图像文件的编码方式,通过navigator.camera.EncodingType进行定义。(数字类型)
Camera.EncodingType = {   
JPEG : 0, // 返回JPEG格式图片
PNG : 1 // 返回PNG格式图片
};

[b]5、camera.cleanup[/b]
清空使用摄像头拍照时候产生的缓存文件.
当我们使用如下参数的时候会产生临时文件
Camera.sourceType = Camera.PictureSourceType.CAMERA and Camera.destinationType = Camera.DestinationType.FILE_URI
通过调用下列方法清除缓存
navigator.camera.cleanup( cameraSuccess, cameraError );
可以自定义cameraSuccess,cameraError 进行相关的操作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值