javascript - 将图像更改为 Blob 在 IE11 中不起作用
问题描述
使用以下代码将图像更改为 blob。
changeImageIntoBlob = getImageResponse => {
var urlCreator = window.URL || window.webkitURL;
var binaryData = [];
binaryData.push(getImageResponse);
var image = urlCreator.createObjectURL(
new Blob(binaryData, { type: "jpeg/png" })
);
this.setState({
image
});
};
在上面的代码中 getImageResponse 参数应该是这样的
Blob {size: 144425, type: "image/jpeg"}
它在 chrome、firefox 和 EDGE 中运行良好,但这个现在在 IE11 中运行,IE 中发生的错误是InvalidStateError
并且还在下图中添加了错误供您参考。
帮我弄清楚。
解决方案
您可以尝试使用此功能。我不确定你的getImageResponse
. 如果它是一个 dataURI,像这样
data:image/jpeg;base64,R0lGODlhEAAQAMQAAORHHOV....
然后你可以试试这个
dataURItoBlob(dataURI) {
var byteString = atob(dataURI.split(",")[1]);
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: "image/jpeg" }); // change the type here into the type you want
},
推荐阅读
- php - 如何使用来自数据库 php 和会话的信息创建新菜单项
- hyperledger - 如何知道 fabcar 示例中的链?
- python-2.7 - 如何使用 python wand 执行 ImageMagick 渐变调用
- python-3.x - 用户警告:轮廓未使用以下 kwarg:'label'、'color'
- swift - Swift 中的 URL 构建器
- mysql - 在 mysql 查询中获取两个团队信息
- javascript - 如何获取从地图函数生成的列表项的键?
- javascript - 在不使用 DOM 的情况下将 HTML 字符串转换为对象
- jquery - 孩子们没有在动画父/包装元素中保持他们的位置
- jquery - 在固定列上实现数据表重叠问题