javascript - 在angularjs中将base64图像数据转换为图像文件

标签 javascript jquery angularjs

在 angularjs 中将 base64 文件转换为图像时文件损坏 谁能建议我如何在 angularjs 中将 base64 文件转换为图像

我正在使用这种方法将base64文件转换为图像

var imageBase64 = "image base64 data";
var blob = new Blob([imageBase64], {type: 'image/png'});

从这个 blob,您可以生成文件对象。

var file = new File([blob], 'imageFileName.png');

最佳答案

首先,将 dataURL 转换为 Blob 这样做

var blob = dataURItoBlob(imageBase64);

function dataURItoBlob(dataURI) {

            // convert base64/URLEncoded data component to raw binary data held in a string
            var byteString;
            if (dataURI.split(',')[0].indexOf('base64') >= 0)
                byteString = atob(dataURI.split(',')[1]);
            else
                byteString = unescape(dataURI.split(',')[1]);

            // separate out the mime component
            var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];

            // write the bytes of the string to a typed array
            var ia = new Uint8Array(byteString.length);
            for (var i = 0; i < byteString.length; i++) {
                ia[i] = byteString.charCodeAt(i);
            }

            return new Blob([ia], {type:mimeString});
        }

然后

var file = new File([blob], "fileName.jpeg", {
            type: "'image/jpeg'"
          });

关于javascript - 在angularjs中将base64图像数据转换为图像文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33940145/

相关文章:

angularjs - 为什么 ngdocs 只从单个目录读取而不是从多个目录中的 js 读取(我使用的是 gulp)?

javascript - 如何在正则表达式替换中插入回车

JavaScript - 在变量对象内部调用变量对象

java - 如何在 Java 中使用 Jsoup 从 javascript 变量解析 html?

angularjs - Angular JS - 使用 ng-repeat 动态地将 href 链接添加到图标

javascript - $location.search() 与外部函数一起使用重置整个 $scope。如何避免呢?

javascript - Redux 持久化 : some part of state not being persisted

jQuery 显示多个列表项,淡出它们然后显示更多

javascript - 查询。 text() 似乎在 IE8 中不起作用

javascript - 缩放的 div 不可拖动到所有父 div