成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

PhoneGap API介紹:Camera

移動(dòng)開(kāi)發(fā)
本文將介紹PhoneGap API——Camera:使用設(shè)備的攝像頭采集照片,對(duì)象提供對(duì)設(shè)備默認(rèn)攝像頭應(yīng)用程序的訪(fǎng)問(wèn)。

方法:

camera.getPicture

參數(shù):

cameraSuccess

cameraError

cameraOptions

camera.getPicture

選擇使用攝像頭拍照,或從設(shè)備相冊(cè)中獲取一張照片。圖片以base64編碼的字符串或圖片URI形式返回。

簡(jiǎn)單的范例

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

說(shuō)明

camera.getPicture函數(shù)打開(kāi)設(shè)備的默認(rèn)攝像頭應(yīng)用程序,使用戶(hù)可以拍照(如果 Camera.sourceType 設(shè)置為 Camera.PictureSourceType.CAMERA,這也是默認(rèn)值)。一旦拍照結(jié)束,攝像頭應(yīng)用程序會(huì)關(guān)閉并恢復(fù)用戶(hù)應(yīng)用程序。

如果Camera.sourceType = Camera.PictureSourceType.PHOTOLIBRARY或Camera.PictureSourceType.SAVEDPHOTOALBUM,系統(tǒng)彈出照片選擇對(duì)話(huà)框,用戶(hù)可以從相集中選擇照片。

返回值會(huì)按照用戶(hù)通過(guò)cameraOptions參數(shù)所設(shè)定的下列格式之一發(fā)送給cameraSuccess回調(diào)函數(shù):

一個(gè)字符串,包含Base64編碼的照片圖像(默認(rèn)情況)。

一個(gè)字符串,表示在本地存儲(chǔ)的圖像文件位置。

你可以對(duì)編碼的圖片或URI做任何處理,例如:

通過(guò)標(biāo)簽渲染圖片(參看后續(xù)范例)

存儲(chǔ)為本地?cái)?shù)據(jù)(LocalStorage,Lawnchair*等)

將數(shù)據(jù)發(fā)送到遠(yuǎn)程服務(wù)器

備注:較新的設(shè)備上使用攝像頭拍攝的照片的質(zhì)量是相當(dāng)不錯(cuò)的,使用Base64對(duì)這些照片進(jìn)行編碼已導(dǎo)致其中的一些設(shè)備出現(xiàn)內(nèi)存問(wèn)題(如IPHONE4、BlackBerry Torch 9800)。因此,強(qiáng)烈建議將“Camera.destinationType”設(shè)為FILE_URI。

支持的平臺(tái)

Android

BlackBerry WebWorks (OS 5.0或更高版本)

iOS

簡(jiǎn)單的范例

拍照并獲取Base64編碼的圖像:

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

拍照并獲取圖像文件路徑:

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

完整的范例:

  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;      //圖片來(lái)源 
  10.     var destinationType;        //設(shè)置返回值的格式 
  11.      
  12.     // 等待PhoneGap連接設(shè)備 
  13.     document.addEventListener("deviceready",onDeviceReady,false); 
  14.      
  15.     // PhoneGap準(zhǔn)備就緒,可以使用! 
  16.     function onDeviceReady() { 
  17.         pictureSource=navigator.camera.PictureSourceType; 
  18.         destinationType=navigator.camera.DestinationType; 
  19.     } 
  20.      
  21.     // 當(dāng)成功獲得一張照片的Base64編碼數(shù)據(jù)后被調(diào)用 
  22.     function onPhotoDataSuccess(imageData) { 
  23.      
  24.         // 取消注釋以查看Base64編碼的圖像數(shù)據(jù) 
  25.         // console.log(imageData); 
  26.         // 獲取圖像句柄 
  27.         var smallImage = document.getElementById('smallImage'); 
  28.               
  29.         // 取消隱藏的圖像元素 
  30.         smallImage.style.display = 'block'
  31.          
  32.         // 顯示拍攝的照片 
  33.         // 使用內(nèi)嵌CSS規(guī)則來(lái)縮放圖片 
  34.         smallImage.src = "data:image/jpeg;base64," + imageData; 
  35.     } 
  36.         
  37.    // 當(dāng)成功得到一張照片的URI后被調(diào)用 
  38.    function onPhotoURISuccess(imageURI) { 
  39.      
  40.         // 取消注釋以查看圖片文件的URI 
  41.         // console.log(imageURI); 
  42.         // 獲取圖片句柄 
  43.         var largeImage = document.getElementById('largeImage'); 
  44.           
  45.         // 取消隱藏的圖像元素 
  46.         largeImage.style.display = 'block'
  47.      
  48.         // 顯示拍攝的照片 
  49.         // 使用內(nèi)嵌CSS規(guī)則來(lái)縮放圖片 
  50.         largeImage.src = imageURI
  51.     } 
  52.         
  53.    // “Capture Photo”按鈕點(diǎn)擊事件觸發(fā)函數(shù) 
  54.    function capturePhoto() { 
  55.  
  56.         // 使用設(shè)備上的攝像頭拍照,并獲得Base64編碼字符串格式的圖像 
  57.         navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50 }); 
  58.    } 
  59.     
  60.    // “Capture Editable Photo”按鈕點(diǎn)擊事件觸發(fā)函數(shù) 
  61.    function capturePhotoEdit() { 
  62.  
  63.         // 使用設(shè)備上的攝像頭拍照,并獲得Base64編碼字符串格式的可編輯圖像 
  64.         navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 20, allowEdit: true }); 
  65.    } 
  66.         
  67.    //“From Photo Library”/“From Photo Album”按鈕點(diǎn)擊事件觸發(fā)函數(shù) 
  68.    function getPhoto(source) { 
  69.     
  70.         // 從設(shè)定的來(lái)源處獲取圖像文件URI 
  71.         navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50, 
  72.         destinationType: destinationType.FILE_URI,sourceType: source }); 
  73.    } 
  74.  
  75.    // 當(dāng)有錯(cuò)誤發(fā)生時(shí)觸發(fā)此函數(shù) 
  76.    function onFail(mesage) { 
  77.         alert('Failed because: ' + message); 
  78.    } 
  79.      
  80. </script> 
  81. </head> 
  82. <body> 
  83.     <button onclick="capturePhoto();">Capture Photo</button> <br> 
  84.     <button onclick="capturePhotoEdit();">Capture Editable Photo</button> <br> 
  85.     <button onclick="getPhoto(pictureSource.PHOTOLIBRARY);">From Photo Library</button><br> 
  86.     <button onclick="getPhoto(pictureSource.SAVEDPHOTOALBUM);">From Photo Album</button><br> 
  87.     <img style="display:none;width:60px;height:60px;" id="smallImage" src=""  /> 
  88.     <img style="display:none;" id="largeImage" src=""  /> 
  89.     </body> 
  90. </html> 

 

cameraSuccess

提供圖像數(shù)據(jù)的onSuccess回調(diào)函數(shù)。

  1. function(imageData) {  
  2. // 對(duì)圖像進(jìn)行處理  
  3. }  

參數(shù)

imageData:根據(jù)cameraOptions的設(shè)定值,為Base64編碼的圖像數(shù)據(jù)或圖像文件的URI。(字符串類(lèi)型)

范例

  1. // 顯示圖片 
  2. function cameraCallback(imageData) { 
  3. var image = document.getElementById('myImage'); 
  4. image.src = "data:image/jpeg;base64," + imageData; 

cameraError

提供錯(cuò)誤信息的onError回調(diào)函數(shù)。

  1. function(message) { 
  2. // 顯示有用信息 

參數(shù)

message:設(shè)備本地代碼提供的錯(cuò)誤信息。(字符串類(lèi)型)

cameraOptions

定制攝像頭設(shè)置的可選參數(shù)。

  1. { quality : 75, 
  2. destinationType : Camera.DestinationType.DATA_URL, 
  3. sourceType : Camera.PictureSourceType.CAMERA, 
  4. allowEdit : true
  5. encodingType : Camera.EncodingType.JPEG, 
  6. targetWidth : 100, 
  7. targetHeight : 100}; 

選項(xiàng)

quality:存儲(chǔ)圖像的質(zhì)量,范圍是[0,100]。(數(shù)字類(lèi)型)

destinationType:選擇返回?cái)?shù)據(jù)的格式。通過(guò)navigator.camera.DestinationType進(jìn)行定義。(數(shù)字類(lèi)型)

  1. Camera.DestinationType = { 
  2. DATA_URL : 0, //返回Base64編碼字符串的圖像數(shù)據(jù) 
  3. FILE_URI : 1 //返回圖像文件的URI 

sourceType:設(shè)定圖片來(lái)源。通過(guò)nagivator.camera.PictureSourceType進(jìn)行定義。(數(shù)字類(lèi)型)

  1. Camera.PictureSourceType = { 
  2. PHOTOLIBRARY : 0, 
  3. CAMERA : 1, 
  4. SAVEDPHOTOALBUM : 2 

allowEdit:在選擇圖片進(jìn)行操作之前允許對(duì)其進(jìn)行簡(jiǎn)單編輯。(布爾類(lèi)型)

EncodingType:選擇返回圖像文件的編碼方式,通過(guò)navigator.camera.EncodingType進(jìn)行定義。(數(shù)字類(lèi)型)

  1. Camera.EncodingType = { 
  2. JPEG : 0, // 返回JPEG格式圖片 
  3. PNG : 1 // 返回PNG格式圖片 
  4. }; 

targetWidth:以像素為單位的圖像縮放寬度,必須和targetHeight同時(shí)使用。相應(yīng)的寬高比保持不變。(數(shù)字類(lèi)型)

targetHeight:以像素為單位的圖像縮放高度,必須和targetWidth同時(shí)使用。相應(yīng)的寬高比保持不變。(數(shù)字類(lèi)型)

Android的特異情況

忽略allowEdit參數(shù)。

Camera.PictureSourceType.PHOTOLIBRARY 或 Camera.PictureSourceType.SAVEDPHOTOALBUM 都會(huì)顯示同一個(gè)相集。

Camera.EncodingType不被支持。

BlackBerry的特異情況

忽略quality參數(shù)。

忽略sourceType參數(shù)。

忽略allowEdit參數(shù)。

當(dāng)拍照結(jié)束后,應(yīng)用程序必須有按鍵注入權(quán)限才能關(guān)閉本地Camera應(yīng)用程序。

使用大圖像尺寸,可能會(huì)導(dǎo)致新近帶有高分辨率攝像頭的型號(hào)設(shè)備無(wú)法對(duì)圖像進(jìn)行編碼(如:Torch 9800)。

Palm的特異情況

忽略quality參數(shù)。

忽略sourceType參數(shù)。

忽略allowEdit參數(shù)。

iPhone的特異情況

為了避免部分設(shè)備上出現(xiàn)內(nèi)存錯(cuò)誤,quality的設(shè)定值要低于50。

當(dāng)使用destinationType.FILE_URI時(shí),使用攝像頭拍攝的和編輯過(guò)的照片會(huì)存儲(chǔ)到應(yīng)用程序的Documents/tmp目錄。

應(yīng)用程序結(jié)束的時(shí)候,應(yīng)用程序的Documents/tmp目錄會(huì)被刪除。如果存儲(chǔ)空間大小非常關(guān)鍵的時(shí)候,開(kāi)發(fā)者也可以通過(guò)navigator.fileMgr的接口來(lái)刪除該目錄。

責(zé)任編輯:佚名 來(lái)源: PhoneGap中國(guó)
相關(guān)推薦

2011-12-30 14:13:05

PhoneGap APCamera視頻

2011-12-19 15:30:25

AccelerometPhoneGap AP

2011-12-19 16:26:39

PhoneGap APCapture

2011-12-20 13:32:52

PhoneGap APContacts

2011-12-20 16:09:57

PhoneGap APDevice

2011-12-21 21:56:45

PhoneGap APFile

2011-12-22 09:54:40

PhoneGap APMedia

2011-12-22 10:33:39

PhoneGap APNotificatio

2011-12-22 10:45:32

PhoneGap APStorage

2011-12-20 15:34:55

PhoneGap APConnection

2011-12-22 09:27:36

PhoneGap APGeolocation

2011-12-20 17:15:52

PhoneGap APEvents

2011-12-20 11:20:46

PhoneGap APCompass

2011-12-30 14:05:17

PhoneGap APConnection視頻

2011-12-30 14:16:02

AccelerometPhoneGap AP視頻

2011-12-30 13:59:38

PhoneGap APDevice視頻

2011-12-30 14:09:32

PhoneGap APCompass視頻

2011-12-30 13:47:57

PhoneGap AP視頻Contacts

2011-09-13 15:51:11

PhoneGap AP

2011-07-05 17:29:53

PhoneGapevents
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 狠狠艹| 在线黄色影院 | www.中文字幕.com | 国产精品久久久久久久久久久久久 | 免费观看av | 国产亚洲人成a在线v网站 | 国产传媒在线播放 | av网站在线播放 | 日韩免费中文字幕 | 国产精品久久久久久久久久99 | 91天堂| 大乳boobs巨大吃奶挤奶 | 成人国产一区二区三区精品麻豆 | 亚洲成人av | 欧美一级黄色免费 | 欧美精品一区二区三区在线 | 免费看一级毛片 | 午夜国产羞羞视频免费网站 | 99re视频在线观看 | 亚洲精品欧美 | 国产一级片一区二区 | 日韩一区二区在线视频 | 国产精品成人在线播放 | 亚洲一区二区三区在线免费 | 中文字幕精品一区久久久久 | 色伊人久久 | 欧美日韩免费一区二区三区 | 欧洲一区二区三区 | 色播99| 欧美黑人国产人伦爽爽爽 | 国产精品国产a | 国产农村妇女精品一二区 | 成人一区av偷拍 | 热99| 欧美视频在线观看 | 国产日韩欧美一区二区 | 久久久久综合 | 99久久精品国产一区二区三区 | 亚洲精品一区二区三区免 | 国产福利在线播放麻豆 | 国产电影一区二区在线观看 |