PHONEGAP 的CAMERA解析

The camera object provides access to the device's default camera application.
 

Methods :
 
•camera.getPicture
 

--------------------------------------------------------------------------------
 

camera.getPicture
 
Takes a photo using the camera or retrieves a photo from the device's album. The image is returned as a base64 encoded String or as the URI of an image file.
 

navigator.camera.getPicture( cameraSuccess, cameraError, [ cameraOptions ] );
 
Description :
 
Function camera.getPicture opens the device's default camera application so that the user can take a picture (if Camera.sourceType = Camera.PictureSourceType.CAMERA, which is the default). Once the photo is taken, the camera application closes and your application is restored.
 

If Camera.sourceType = Camera.PictureSourceType.PHOTOLIBRARY or Camera.PictureSourceType.SAVEDPHOTOALBUM, then a photo chooser dialog is shown, from which a photo from the album can be selected.
 

The return value will be sent to the cameraSuccess function, in one of the following formats, depending on the cameraOptions you specify:
 

•A String containing the Base64 encoded photo image (default).
•A String representing the image file location on local storage.
You can do whatever you want with the encoded image or URI, for example:
 

•Render the image in an <img> tag (see example below)
•Save the data locally (LocalStorage, Lawnchair*, etc)
 
•Post the data to a remote server
 
Note: The image quality of pictures taken using the camera on newer devices is quite good, and images from the Photo Album will not be downscaled to a lower quality, even if a quality parameter is specified. Encoding such images using Base64 has caused memory issues on some of these devices (iPhone 4, BlackBerry Torch 9800). Therefore, using FILE_URI as the 'Camera.destinationType' is highly recommended.
 

Supported Platforms :
 
•Android
 
•Blackberry WebWorks (OS 5.0 and higher)
 
•iPhone
 
•Windows Phone 7 ( Mango )
 
•Bada 1.2
 
Windows Phone 7 Quirks :
 
Invoking the native camera application while your device is connected via Zune will not work, and the error callback will be triggered.
 

Quick Example :
 
Take photo and retrieve Base64-encoded image:
 

navigator.camera.getPicture(onSuccess, onFail, { quality: 50,
 
destinationType: Camera.DestinationType.DATA_URL
 
});

function onSuccess(imageData) {
 
var image = document.getElementById('myImage');
 
image.src = "data:image/jpeg;base64," + imageData;
 
}
 

function onFail(message) {
 
alert('Failed because: ' + message);
 
}
 
Take photo and retrieve image file location:

navigator.camera.getPicture(onSuccess, onFail, { quality: 50,
destinationType: Camera.DestinationType.FILE_URI });

function onSuccess(imageURI) {
 
var image = document.getElementById('myImage');
 
image.src = imageURI;
 
}
 

function onFail(message) {
 
alert('Failed because: ' + message);
 
}
 
Full Example :
 
<!DOCTYPE html>
 
<html>
 
<head>
 
<title>Capture Photo</title>
 

<script type="text/javascript" charset="utf-8" src="cordova-1.7.0.js"></script>
 
<script type="text/javascript" charset="utf-8">
 

var pictureSource; // picture source
 
var destinationType; // sets the format of returned value

// Wait for Cordova to connect with the device
 
//
 
document.addEventListener("deviceready",onDeviceReady,false);
 

// Cordova is ready to be used!
 
//
 
function onDeviceReady() {
 
pictureSource=navigator.camera.PictureSourceType;
 
destinationType=navigator.camera.DestinationType;
 
}
 

// Called when a photo is successfully retrieved
 
//
 
function onPhotoDataSuccess(imageData) {
 
// Uncomment to view the base64 encoded image data
 
// console.log(imageData);
 

// Get image handle
 
//
 
var smallImage = document.getElementById('smallImage');
 

// Unhide image elements
 
//
 
smallImage.style.display = 'block';
 

// Show the captured photo
 
// The inline CSS rules are used to resize the image
 
//
 
smallImage.src = "data:image/jpeg;base64," + imageData;
 
}
 

// Called when a photo is successfully retrieved
 
//
 
function onPhotoURISuccess(imageURI) {
 
// Uncomment to view the image file URI
// console.log(imageURI);
 

// Get image handle
 
//
 
var largeImage = document.getElementById('largeImage');
 

// Unhide image elements
 
//
 
largeImage.style.display = 'block';
 

// Show the captured photo
 
// The inline CSS rules are used to resize the image
 
//
 
largeImage.src = imageURI;
 
}
 

// A button will call this function
 
//
 
function capturePhoto() {
 
// Take picture using device camera and retrieve image as base64-encoded string
 
navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50,
 
destinationType: destinationType.DATA_URL });
 
}
 

// A button will call this function
 
//
 
function capturePhotoEdit() {
 
// Take picture using device camera, allow edit, and retrieve image as base64-encoded string
navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 20, allowEdit: true,
 
destinationType: destinationType.DATA_URL });
 
}
 

// A button will call this function
 
//
 
function getPhoto(source) {
 
// Retrieve image file location from specified source
 
navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50,
destinationType: destinationType.FILE_URI,
 
sourceType: source });
 
}
 

// Called if something bad happens.
 
//
function onFail(message) {
 
alert('Failed because: ' + message);
 
}
 

</script>
 
</head>
 
<body>
 
<button οnclick="capturePhoto();">Capture Photo</button>

<button οnclick="capturePhotoEdit();">Capture Editable Photo</button>

<button οnclick="getPhoto(pictureSource.PHOTOLIBRARY);">From Photo Library</button>
 

<button οnclick="getPhoto(pictureSource.SAVEDPHOTOALBUM);">From Photo Album</button>
 

<img style="display:none;width:60px;height:60px;" id="smallImage" src="" />
 
<img style="display:none;" id="largeImage" src="" />
 
</body>
 
</html>
 

--------------------------------------------------------------------------------
 

cameraSuccess
 
onSuccess callback function that provides the image data.
 

function(imageData) {
 
// Do something with the image
 
}
 
Parameters :
 
•imageData: Base64 encoding of the image data, OR the image file URI, depending on cameraOptions used. (String)
 
Example :
 
// Show image
 
//
 
function cameraCallback(imageData) {
 
var image = document.getElementById('myImage');
 
image.src = "data:image/jpeg;base64," + imageData;
 
}
 

--------------------------------------------------------------------------------
 

cameraError
 
onError callback function that provides an error message.
 

function(message) {
 
// Show a helpful message
 
}
 
Parameters :
 
•message: The message is provided by the device's native code. (String)
 

--------------------------------------------------------------------------------
 

cameraOptions
 
Optional parameters to customize the camera settings.
 

{ quality : 75,
destinationType : Camera.DestinationType.DATA_URL,
sourceType : Camera.PictureSourceType.CAMERA,
allowEdit : true,
 
encodingType: Camera.EncodingType.JPEG,
 
targetWidth: 100,
 
targetHeight: 100 };
 
Options :
 
•quality: Quality of saved image. Range is [0, 100]. (Number)
 

•destinationType: Choose the format of the return value. Defined in navigator.camera.DestinationType (Number)
 

Camera.DestinationType = {
 
DATA_URL : 0, // Return image as base64 encoded string
 
FILE_URI : 1 // Return image file URI
 
};
 
•sourceType: Set the source of the picture. Defined in nagivator.camera.PictureSourceType (Number)
 

Camera.PictureSourceType = {
 
PHOTOLIBRARY : 0,
 
CAMERA : 1,
 
SAVEDPHOTOALBUM : 2
 
};
 
•allowEdit: Allow simple editing of image before selection. (Boolean)
 

•encodingType: Choose the encoding of the returned image file. Defined in navigator.camera.EncodingType (Number)
 

Camera.EncodingType = {
 
JPEG : 0, // Return JPEG encoded image
 
PNG : 1 // Return PNG encoded image
 
};
 
•targetWidth: Width in pixels to scale image. Must be used with targetHeight. Aspect ratio is maintained. (Number)
 

•targetHeight: Height in pixels to scale image. Must be used with targetWidth. Aspect ratio is maintained. (Number)
 

•mediaType: Set the type of media to select from. Only works when PictureSourceType is PHOTOLIBRARY or SAVEDPHOTOALBUM. Defined in nagivator.camera.MediaType (Number)
 

Camera.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
 
};
 

•correctOrientation: Rotate the image to correct for the orientation of the device during capture. (Boolean)
 

•saveToPhotoAlbum: Save the image to the photo album on the device after capture. (Boolean)
 
Android Quirks :
 
•Ignores the allowEdit parameter.
 
•Camera.PictureSourceType.PHOTOLIBRARY and Camera.PictureSourceType.SAVEDPHOTOALBUM both display the same photo album.
 
•Camera.EncodingType is not supported.
 
•Ignores the correctOrientation parameter.
 
•Ignores the saveToPhotoAlbum parameter.
 
BlackBerry Quirks :
 
•Ignores the quality parameter.
 
•Ignores the sourceType parameter.
 
•Ignores the allowEdit parameter.
 
•Application must have key injection permissions to close native Camera application after photo is taken.
 
•Using Large image sizes may result in inability to encode image on later model devices with high resolution cameras (e.g. Torch 9800).
 
•Camera.MediaType is not supported.
 
•Ignores the correctOrientation parameter.
 
•Ignores the saveToPhotoAlbum parameter.
 
Palm Quirks :
 
•Ignores the quality parameter.
 
•Ignores the sourceType parameter.
 
•Ignores the allowEdit parameter.
 
•Camera.MediaType is not supported.
 
•Ignores the correctOrientation parameter.
 
•Ignores the saveToPhotoAlbum parameter.
 
iOS Quirks :
 
•Set quality below 50 to avoid memory error on some devices.
 
•When destinationType.FILE_URI is used, photos are saved in the application's temporary directory.
 
•The contents of the application's temporary directory is deleted when the application ends. Developers may also delete the contents of this directory using the navigator.fileMgr APIs if storage space is a concern.
 
Windows Phone 7 Quirks :
 
•Ignores the allowEdit parameter.
 
•Ignores the correctOrientation parameter.
 
•Ignores the saveToPhotoAlbum parameter.
 
Bada 1.2 Quirks :
 
•options not supported
 
•always returns a FILE URI

本文来自来自移动终端开发网www.yeehot.com,转载请注明出处

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
校园失物招领系统管理系统按照操作主体分为管理员和用户。管理员的功能包括字典管理、论坛管理、公告信息管理、失物招领管理、失物认领管理、寻物启示管理、寻物认领管理、用户管理、管理员管理。用户的功能等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 校园失物招领系统管理系统可以提高校园失物招领系统信息管理问题的解决效率,优化校园失物招领系统信息处理流程,保证校园失物招领系统信息数据的安全,它是一个非常可靠,非常安全的应用程序。 ,管理员权限操作的功能包括管理公告,管理校园失物招领系统信息,包括失物招领管理,培训管理,寻物启事管理,薪资管理等,可以管理公告。 失物招领管理界面,管理员在失物招领管理界面中可以对界面中显示,可以对失物招领信息的失物招领状态进行查看,可以添加新的失物招领信息等。寻物启事管理界面,管理员在寻物启事管理界面中查看寻物启事种类信息,寻物启事描述信息,新增寻物启事信息等。公告管理界面,管理员在公告管理界面中新增公告,可以删除公告。公告类型管理界面,管理员在公告类型管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值