cordova-plugin-camera相機外掛使用
阿新 • • 發佈:2019-02-09
一、cordova-plugin-camera提供照相機API與裝置相機進行互動。
通過API我們可以拍攝或訪問照片庫中的照片,返回圖片的base64編碼字串或者圖片的url檔案路徑。
二.安裝命令:
cordova plugin add cordova-plugin-camera
官當文件:
http://cordova.apache.org/docs/en/latest/reference/cordova-plugin-camera/index.html#module_Camera.Direction
三.API和相關物件
1.navigator.camera.getPicture(onSuccess,onError,opiotns) 從相機或圖片庫獲取
2.navigator.camera.cleanup(onSuccess,onError) 移除掉影象檔案呼叫camera.getPicture所儲存的臨時儲存空間。
3.CameraOptions 相機設定的可選引數
名字 |
型別 |
預設值 |
描述 |
quality |
number | 50 | 影象的儲存質量,範圍0-100,100是最大值,最高的解析度,沒有任何壓縮損失(請注意有關該相機的解析度資訊不可用。) |
destinationType | DestinationType | FILE_URI | 選擇返回值的格式 |
sourceType | PictureSourceType | CAMERA | 獲取圖片的來 |
allowEdit | Boolean | true | 允許在選擇圖片之前進行簡單的編輯 |
encodingType | EncodingType | JPEG | 選擇影象的返回編碼 |
targetWidth | number | 寬度畫素用來縮放影象。必須和targetHeight一起使用。寬高比保持不變。 | |
targetHeight | number | 高度畫素用來縮放影象。必須和targetWidth一起使用。寬高比保持不變 | |
mediaType | MediaType | PICTURE | 選擇media型別。它只適用PictureSourceType是PHOTOLIBRARY或SAVEDPHOTOALBUM |
correctOrientation | Boolean | 如果是橫向拍攝的照片,會自動旋轉到正確的方向 | |
saveToPhotoAlbum | Boolean | 裝置拍照後的影象是否儲存的圖片庫中 | |
popoverOptions | CameraPopoverOptions | 僅ios可用,設定在ipad的popover的位置 | |
cameraDirection | Direction | BACK | 選擇前置攝像頭還是後置攝像頭 |
Camera.DestinationType :返回資料型別 特性:
變數名 | 型別 | 預設值 | 描述 |
DATA_URL | number | 0 | 返回Base64編碼的字串 |
FILE_URI | number | 1 | 返回檔案的URI(content://media/external/images/media/2 for Android) |
NATIVE_URI | number | 2 | 返回原生URI (eg. asset-library://... for iOS) |
變數名 | 型別 | 預設值 | 描述 |
JPEG | number | 0 | 返回JPEG的圖片 |
PNG | number | 1 | 返回PNG的圖片 |
變數名 | 型別 | 預設值 | 描述 |
PICTURE | number | 0 | 僅允許選擇靜態影像。 預設。將通過DestinationType返回指定格式 |
VIDEO | number | 1 | 僅允許選擇視訊,只返回網址 |
ALLMEDIA | number | 2 | 允許返回所有媒體格式 |
變數名 | 型別 | 預設值 | 描述 |
PHOTOLIBRARY | number | 0 | 從裝置相簿選擇圖片 |
CAMERA | number | 1 | 用攝像頭拍攝圖片 |
SAVEDPHOTOALBUM | number | 2 | 從裝置相簿選擇圖片(一個應該是ios一個安卓) |
變數名 | 型別 | 預設值 |
ARROW_UP | number | 1 |
ARROW_DOWN | number | 2 |
ARROW_LEFT | number | 4 |
ARROW_RIGHT | number | 8 |
ARROW_ANY | number | 15 |
變數名 | 型別 | 預設值 | 描述 |
BACK | number | 0 | 使用後置攝像頭 |
FRONT | number | 1 | 使用前置攝像頭 |
變數名 | 型別 | 預設值 | 描述 |
[x] | number | 0 | 螢幕選取框的x座標 |
[y] | number | 32 | 螢幕選取框的y座標 |
[width] | number | 320 | 螢幕選取框的寬度 |
[height] | number | 480 | 螢幕選取框的高度 |
[arrowDir] | PopoverArrowDirection | ARROW_ANY | 確定popover的指向 |
1.從相簿獲取DATA_URL型別
navigator.camera.getPicture(onSuccess, onError, {
quality: 50,
destinationType: Camera.DestinationType.DATA_URL,//返回Base64編碼字串
sourceType: Camera.PictureSourceType.SAVEDPHOTOALBUM,//指定圖片來自相簿
encodingType: Camera.EncodingType.JPEG, //指定返回圖片是png格式還是jpeg
});
function onSuccess(data) {
alert(data.length);
var result = "data:image/jpeg;base64," + data;
app.url1 = result;
document.getElementById('imgOne').src = result;
}
function onError() {
alert('獲取失敗');
}
2.從拍照獲取圖片File_Uri路徑
navigator.camera.getPicture(onSuccess, onError, {
quality: 50,
destinationType: Camera.DestinationType.FILE_URI,//返回FILE_URI型別
sourceType: Camera.PictureSourceType.CAMERA,//指定圖片來自拍照
cameraDirection: Camera.Direction.FRONT,//指定前後攝像頭--好像沒起作用
targetWidth: 300,
targetHeight: 300
//encodingType: Camera.EncodingType.PNG //指定返回圖片是png格式還是jpeg
});
function onSuccess(data) {
alert(data);
app.url2 = data;
document.getElementById('imgTwo').src = data;
}
function onError() {
alert('獲取失敗');
}
更多: