我已经将这个提琴手的例子镜像到了Base64。当我使用直接图像路径链接时,它的工作正常,但是当我传递相机图像时,它失败了。
Camera.getPicture().then(function(imageURI) {
var imageUrl = "http://upload.wikimedia.org/wikipedia/commons/4/4a/Logo_2013_Google.png";
convertImgToDataURLviaCanvas(imageUrl, function(base64Img) {
alert(base64Img);
});
var result = convertImgToDataURLviaCanvas(imageURI);
}, function(err) {
alert(err);
}, {
quality: 75,
targetWidth: 320,
targetHeight: 320,
pictureSource: navigator.camera.PictureSourceType.PHOTOLIBRARY,
destinationType: navigator.camera.DestinationType.FILE_URI,
saveToPhotoAlbum: true
});
function convertImgToDataURLviaCanvas(url, callback, outputFormat) {
var img = new Image();
img.crossOrigin = 'Anonymous';
img.onload = function() {
var canvas = document.createElement('CANVAS');
var ctx = canvas.getContext('2d');
var dataURL;
canvas.height = this.height;
canvas.width = this.width;
ctx.drawImage(this, 0, 0);
dataURL = canvas.toDataURL(outputFormat);
alert(dataURL + "GANESH" + outputFormat);
callback(dataURL);
alert('5');
canvas = null;
};
img.src = url;
}
在这里,如果我给出图像的直接路径,则在使用相机图像时它可以工作,但不起作用。帮帮我..在此先感谢。
最佳答案
无需编写自己的base64转换器。设置属性Camera.DestinationType.DATA_URL
后,插件将为您完成此操作
destinationType : Camera.DestinationType.DATA_URL
设置属性后,
Camera.getPicture()
现在将返回照片的base64
版本。Camera.getPicture().then(function(imageURI) {
console.log(imageURI) //base64 photo
});