我有这样的URL-> blob:http%3A // localhost%3A4400 / a558ba4c-076b-490a-999d-92bc85f2bcee,但是此URL仅可以在我的浏览器中读取,而不能在另一个浏览器中读取。

.controller('cameraCtrl', function ($scope, Camera) {
    $scope.takePhoto= function () {
        Camera.takePhoto().then(function (urlImage) {
            $scope.lastPicture = urlImagen;
        },
        function (err) {
            console.err(err);
        },
        {
            quality: 50,
            targetWidth: 50,
            targetHeight: 50,
            saveToPhotoAlbum: true
        });
    };
}


问题是:如何获取该URL的图像以将其转换为字符串Base64?任何帮助都会很棒,谢谢。

最佳答案

您应该添加代码,这样人们就不必从头开始编写解决方案了。

function  ConvertBlobToDataUrl(blobUrl, complete){
   var canvas = document.createElement("canvas");
   var ctx = canvas.getContext("2d");
   var tempImg = new Image();

   tempImg.onload = function(){
      canvas.width = tempImg .width;
      canvas.height = tempImg .height;
      ctx.drawImage(tempImg , 0,0, tempImg.width, tempImg.height);
      complete(canvas.toDataURL())
   }

   tempImg.src = blobUrl;

}


然后的用法是

var dataUrl = "";
ConvertBlobToDataUrl(blobUrl, function(url){
    dataUrl = url;
}


从内存中写入,但是应该可以正常工作。

08-03 18:16