将相机捕获图像转换为base64 - Ionic

gan*_*esh 1 javascript base64 camera cordova ionic-framework

我已经按照这个小提琴示例Image到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;
Run Code Online (Sandbox Code Playgroud)

}

在这里,如果我给图像的直接路径它的工作,但是当我使用相机图像时它不起作用.帮帮我们..提前谢谢.

Aki*_*fas 7

无需编写自己的base64转换器.设置属性后,插件将为您完成Camera.DestinationType.DATA_URL

destinationType : Camera.DestinationType.DATA_URL
Run Code Online (Sandbox Code Playgroud)

设置属性后,Camera.getPicture()现在将返回base64照片的版本.

Camera.getPicture().then(function(imageURI) {
  console.log(imageURI) //base64 photo
});
Run Code Online (Sandbox Code Playgroud)