前端 base64转二进制流(blob)
前端 base64转二进制流(blob)
·
二进制流转base64https://blog.csdn.net/m0_60067716/article/details/124606097
核心代码
// base64 转 二进制流(blob)
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,
});
},
完整代码
<template>
<div class="app">
<img :src="imgSrc" alt="图片" />
</div>
</template>
<script>
import axios from "axios";
export default {
name: "app",
data() {
return {
imgSrc: "",
};
},
methods: {
// 二进制流 转 base64
getBase64(data) {
return new Promise((resolve, reject) => {
const blob = new Blob([data], { type: "image/jpg" }); //类型一定要写!!!
const reader = new FileReader();
reader.readAsDataURL(blob);
reader.onload = () => resolve(reader.result);
reader.onerror = (error) => reject(error);
});
},
// base64 转 二进制流(blob)
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,
});
},
},
mounted() {
//网上随便找的图片
const url =
"https://img0.baidu.com/it/u=73689209,3130028231&fm=253&fmt=auto&app=138&f=JPEG";
axios
.get(url, {
responseType: "blob", //一定要传!!!
})
.then((res) => {
console.log(res.data, "二进制流");
// 二进制流 转base64
this.getBase64(res.data).then((binary) => {
console.log(binary, "base64");
// base64转 二进制流(blob)
let blob = this.dataURLtoBlob(binary);
console.log(blob, "blob");
// 再转为file对象,放到页面上显示
const objectURL = URL.createObjectURL(blob);
console.log(objectURL, "objectURL");
this.imgSrc = objectURL;
});
});
},
};
</script>
更多推荐
所有评论(0)
您需要登录才能发言
加载更多