我无法将图像转换为使用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