Camera

Camera

  camera对象提供调用设备上的默认照相应用。

  Methods 

  • camera.getPicture

camera.getPicture

通过摄像机照一张像,或者从相册中取出一张图片。图片是基础base64编码的字符串或者图片URI地址作为返回值的。

 
  
  
  
  
  1. navigator.camera.getPicture( cameraSuccess, cameraError, [ cameraOptions ] ); 

Description 

  camera.getPicture 方法打开设备上的摄像功能,一遍用户照相(如果Camera.sourceType= Camera.PictureSourceType.CAMERA,通常sourcetype是默认该值的)。
   一旦摄了像,Camera应用会关闭,信息被存储起来。
 
   如果Camera.sourceType = Camera.PictureSourceType.PHOTOLIBARARY 或者是 Camera.PictureSourceType.SAVEDPHOTOALBUM,这是会显示图片选择对话框,该图片是从相册中选择出来的。
 
返回值将被发送到cameraSuccess函数,格式依赖于cameraOptions的值。
  •  一段字符串包含加密过的Base64图像(默认)。
  •  一段字符串代表该图片在存储器中的位置。
可以根据自己的要求就能得到的是图像或者URL,例如:
  •  给image的img赋值(看下面的例子)
  •  保存数据到本地(本地存储,移动设备等)
  •  把数据传递给服务端
   小记:使用相机或比较新的设备以至于确保图像的质量,在一些设备上用Base64加密图像数据导致内存问题(iPhone 4, BlackBerry Torch 9800),因此推荐使用FILE_URI作为“Camera.destinationType”。

Supported Platforms 

   Android
   Blackberry WebWorks (OS 5.0 and higher)
   iPhone
   Windows Phone 7 ( Mango )
   Quick Example 
 

照相并且取得由Base64加密的图像数据。

  
  
  
  
  1. navigator.camera.getPicture(onSuccess, onFail, { quality: 50 });  
  2.  
  3. function onSuccess(imageData) { 
  4.         var image = document.getElementById('myImage'); 
  5.         image.src = "data:image/jpeg;base64," + imageData; 
  6.  
  7. function onFail(message) { 
  8.         alert('Failed because: ' + message); 

照相并得到图片地址:

   
   
   
   
  1. navigator.camera.getPicture(onSuccess, onFail, { quality: 50,  
  2.         destinationType: Camera.DestinationType.FILE_URI });  
  3.  
  4. function onSuccess(imageURI) { 
  5.         var image = document.getElementById('myImage'); 
  6.         image.src = imageURI; 
  7.  
  8. function onFail(message) { 
  9.         alert('Failed because: ' + message); 

Full Example

  
  
  
  
  1. <!DOCTYPE html> 
  2. <html> 
  3.   <head> 
  4.     <title>Capture Photo</title> 
  5.  
  6.     <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7.     <script type="text/javascript" charset="utf-8"
  8.  
  9.     var pictureSource;   // picture source 
  10.     var destinationType; // sets the format of returned value  
  11.  
  12.     // Wait for PhoneGap to connect with the device 
  13.     // 
  14.     document.addEventListener("deviceready",onDeviceReady,false); 
  15.  
  16.     // PhoneGap is ready to be used! 
  17.     // 
  18.     function onDeviceReady() { 
  19.         pictureSource=navigator.camera.PictureSourceType; 
  20.         destinationType=navigator.camera.DestinationType; 
  21.     } 
  22.  
  23.     // Called when a photo is successfully retrieved 
  24.     // 
  25.     function onPhotoDataSuccess(imageData) { 
  26.       // Uncomment to view the base64 encoded image data 
  27.       // console.log(imageData); 
  28.  
  29.       // Get image handle 
  30.       // 
  31.       var smallImage = document.getElementById('smallImage'); 
  32.  
  33.       // Unhide image elements 
  34.       // 
  35.       smallImage.style.display = 'block'
  36.  
  37.       // Show the captured photo 
  38.       // The inline CSS rules are used to resize the image 
  39.       // 
  40.       smallImage.src = "data:image/jpeg;base64," + imageData; 
  41.     } 
  42.  
  43.     // Called when a photo is successfully retrieved 
  44.     // 
  45.     function onPhotoURISuccess(imageURI) { 
  46.       // Uncomment to view the image file URI  
  47.       // console.log(imageURI); 
  48.  
  49.       // Get image handle 
  50.       // 
  51.       var largeImage = document.getElementById('largeImage'); 
  52.  
  53.       // Unhide image elements 
  54.       // 
  55.       largeImage.style.display = 'block'
  56.  
  57.       // Show the captured photo 
  58.       // The inline CSS rules are used to resize the image 
  59.       // 
  60.       largeImage.src = imageURI; 
  61.     } 
  62.  
  63.     // A button will call this function 
  64.     // 
  65.     function capturePhoto() { 
  66.       // Take picture using device camera and retrieve image as base64-encoded string 
  67.       navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50 }); 
  68.     } 
  69.  
  70.     // A button will call this function 
  71.     // 
  72.     function capturePhotoEdit() { 
  73.       // Take picture using device camera, allow edit, and retrieve image as base64-encoded string   
  74.       navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 20, allowEdit: true });  
  75.     } 
  76.  
  77.     // A button will call this function 
  78.     // 
  79.     function getPhoto(source) { 
  80.       // Retrieve image file location from specified source 
  81.       navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50,  
  82.         destinationType: destinationType.FILE_URI, 
  83.         sourceType: source }); 
  84.     } 
  85.  
  86.     // Called if something bad happens. 
  87.     //  
  88.     function onFail(message) { 
  89.       alert('Failed because: ' + message); 
  90.     } 
  91.  
  92.     </script> 
  93.   </head> 
  94.   <body> 
  95.     <button onclick="capturePhoto();">Capture Photo</button> <br> 
  96.     <button onclick="capturePhotoEdit();">Capture Editable Photo</button> <br> 
  97.     <button onclick="getPhoto(pictureSource.PHOTOLIBRARY);">From Photo Library</button><br> 
  98.     <button onclick="getPhoto(pictureSource.SAVEDPHOTOALBUM);">From Photo Album</button><br> 
  99.     <img style="display:none;width:60px;height:60px;" id="smallImage" src="" /> 
  100.     <img style="display:none;" id="largeImage" src="" /> 
  101.   </body> 
  102. </html> 

cameraSuccess

  onSuccess函数有一个图像数据字符串参数.
 
function(imageData) {
         // Do something with the image
}

Parameters 

imageData:Base64的图像数据或者是图片的URI,取决于cameraOptions的设置.
例如

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

 

你可能感兴趣的:(字符串,图片,Camera,休闲,摄像机)