将数据网址转换为angularjs中的图像

时间:2016-07-06 04:56:12

标签: angularjs

我正在使用cordovaCamera插件来获取相机图像。这个方法我得到的图像为Camera.DestinationType.DATA_URL(即Data.URL)。我需要将Data.URL转换为File对象。我需要传递这个文件对象进入$ http.post方法。任何人都给出了解决这个问题的建议。

1 个答案:

答案 0 :(得分:0)

第1步:
使用&data;数据附加DATA_URL:image / jpeg; base64,'在你的相机;成功的回调。

$cordovaCamera.getPicture(options).then(function(data) {
    var imgURI = 'data:image/jpeg;base64,' + imageData;
    convertToBlob(imgURI);
   }, function(err) {
});

第2步
将数据转换为blob

function convertToBlob(imgData){
 var byteString = atob(imgData.split(',')[1]);
 var mimeString = imgData.split(',')[0].split(':')[1].split(';')[0];
 var ab = new ArrayBuffer(byteString.length);
 var ia = new Uint8Array(ab);
  for (var i = 0; i < byteString.length; i++)
   {
    ia[i] = byteString.charCodeAt(i);
   }
  return new Blob([ab], { 'type': mimeString });
}

第3步
 blob是没有名称的文件。所以只需附加那个,你就有了一个文件

我猜您使用FormData将图像发送到后端?如果是,那么这样做:

var fdata = new FormData();
// blob is the output from the convertToBlob method
fd.append('file', blob, 'a.jpg');