我有一个来自画布的 DataURL,显示了我的网络摄像头。我使用 Matt 的答案将此 dataURL 转换为 blob:如何在javascript中将dataURL转换为文件对象? https://stackoverflow.com/questions/6850276/how-to-convert-dataurl-to-file-object-in-javascript
如何将此 blob 转换回相同的 DataURL?我花了一天的时间研究这个,我很惊讶这个没有更好的记录,除非我是盲人。
编辑:
有
var urlCreator = window.URL || window.webkitURL;
var imageUrl = urlCreator.createObjectURL(blob);
但它只返回一个非常短的 URL,似乎指向本地文件,但我需要通过网络发送网络摄像头数据。
使用我的代码在 JavaScript 中的 dataURL 和 blob 对象之间进行转换。 (比您链接中的代码更好。)
//**dataURL to blob**
function dataURLtoBlob(dataurl) {
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while(n--){
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], {type:mime});
}
//**blob to dataURL**
function blobToDataURL(blob, callback) {
var a = new FileReader();
a.onload = function(e) {callback(e.target.result);}
a.readAsDataURL(blob);
}
//test:
var blob = dataURLtoBlob('data:text/plain;base64,YWFhYWFhYQ==');
blobToDataURL(blob, function(dataurl){
console.log(dataurl);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)