我無法將圖像轉換爲使用ngCordova imagePicker選擇的base64格式。Cordova Image Picker轉換爲base64
爲了簡單起見,設在科爾多瓦的網站(工作)的代碼是這樣的:
module.controller('ThisCtrl', function($scope, $cordovaImagePicker) {
var options = {
maximumImagesCount: 10,
width: 800,
height: 800,
quality: 80
};
$cordovaImagePicker.getPictures(options)
.then(function (results) {
for (var i = 0; i < results.length; i++) {
console.log('Image URI: ' + results[i]);
}
}, function(error) {
// error getting photos
});
});
結果數組返回結果像一個數組:文件/// ...但如何從這裏轉換?我想要一個函數將一個值傳遞給(文件)並返回base64字符串。
這裏是試圖這樣的功能:
function convertImgToBase64URL(url, callback, outputFormat){
var canvas = document.createElement('CANVAS'),
ctx = canvas.getContext('2d'),
img = new Image();
img.crossOrigin = 'Anonymous';
img.onload = function(){
var dataURL;
canvas.height = img.height;
canvas.width = img.width;
ctx.drawImage(img, 0, 0);
dataURL = canvas.toDataURL(outputFormat);
callback(dataURL);
canvas = null;
};
img.src = url;
};
但如何將它集成到代碼?
我曾經嘗試這樣做(只需要選擇一個圖像):
$cordovaImagePicker.getPictures(options)
.then(function (results) {
convertImgToBase64URL(results[0], function(base64Img){
self.chosenImage = base64Img;
});
}, function(error) {
console.log(error);
});
但self.chosenImage被設置爲空白。
可能是一個異步問題,但如何最好地解決它?
這工作得很好,國際海事組織,應該是正確的答案 – David 2016-08-19 21:28:31
偉大的,我工作與選擇只有一個圖像? – 2017-04-18 19:13:25