在Angular 4中将base64字符串转换为图片

7

我有一个需求,使用ng2-image cropper裁剪图像。 但输出是base64格式,我想将其转换为图像源,因为我需要发送到某些服务器。 我搜索了一下,但没有找到与angular 4兼容的解决方案。


Angular 在这里具体阻碍了什么?如果您已经使用任何库对 Base64 进行解码,那么您可以将其发送到服务器,不是吗? - Thilo
有一个要求,我需要将其仅以图像格式发送到服务器。 - Ayushi Tomar
要对Base64进行编码或解码,您可以使用JavaScript中的相应函数 - Oliver
它不起作用了,还出现了错误。 - Ayushi Tomar
1
在这里我无法理解负面的评价。难道你非常需要来自SO的 "深度喷子" 或 "专门的恶评者" 徽章吗? - JoeCool-Avismón
我也不理解为什么会有负面评价 :/ - Ayushi Tomar
2个回答

8

可以通过将其转换为Blob来完成

dataURItoBlob(dataURI) {
    var binary = atob(dataURI.split(',')[1]);
    var array = [];
  for (var i = 0; i < binary.length; i++) {
     array.push(binary.charCodeAt(i));
  }
 return new Blob([new Uint8Array(array)], {
    type: 'image/jpg'
});
}

    enter code here

 var myFile:Blob=this.dataURItoBlob(myDataUri);

你好,我正试图做类似的事情,请问你的dataURI是什么样子的? - Tanmay Parmar

1
请尝试另一种将base64转换为blob的简单方法。
   fetch(base64)
    .then(res => {
      return res.blob();
    })
    .then(blob => {
      console.log(blob);
    });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接