前端 base64下载图片亲测可用
二进制流转base64传送门https://blog.csdn.net/m0_60067716/article/details/124606097
二进制流转base64这里就不介绍啦,可以看我上面的文章。
base64转图片核心代码
- imgSrc:就是base64地址哈
-
saveImg() {
-
var base64 = this.imgSrc.toString(); // imgSrc 就是base64哈
-
var byteCharacters = atob(
-
base64.replace(/^data:image\/(png|jpeg|jpg);base64,/, "")
-
);
-
var byteNumbers = new Array(byteCharacters.length);
-
for (var i = 0; i < byteCharacters.length; i ) {
-
byteNumbers[i] = byteCharacters.charCodeAt(i);
-
}
-
var byteArray = new Uint8Array(byteNumbers);
-
var blob = new Blob([byteArray], {
-
type: undefined,
-
});
-
var aLink = document.createElement("a");
-
aLink.download = "图片名称.jpg"; //这里写保存时的图片名称
-
aLink.href = URL.createObjectURL(blob);
-
aLink.click();
-
},
完整代码
-
<template>
-
<div class="app">
-
<img :src="imgSrc" alt="图片" />
-
<button @click="saveImg">点击保存图片</button>
-
</div>
-
</template>
-
<script>
-
import axios from "axios";
-
export default {
-
name: "app",
-
data() {
-
return {
-
imgSrc: "",
-
};
-
},
-
methods: {
-
// 二进制流转换为base64 格式。
-
getBase64(data) {
-
const blob = new Blob([data], { type: "image/jpg" }); //类型一定要写!!!
-
return new Promise((resolve, reject) => {
-
const reader = new FileReader();
-
reader.readAsDataURL(blob);
-
reader.onload = () => resolve(reader.result);
-
reader.onerror = (error) => reject(error);
-
});
-
},
-
// base64 保存图片
-
saveImg() {
-
var base64 = this.imgSrc.toString(); // imgSrc 就是base64哈
-
var byteCharacters = atob(
-
base64.replace(/^data:image\/(png|jpeg|jpg);base64,/, "")
-
);
-
var byteNumbers = new Array(byteCharacters.length);
-
for (var i = 0; i < byteCharacters.length; i ) {
-
byteNumbers[i] = byteCharacters.charCodeAt(i);
-
}
-
var byteArray = new Uint8Array(byteNumbers);
-
var blob = new Blob([byteArray], {
-
type: undefined,
-
});
-
var aLink = document.createElement("a");
-
aLink.download = "图片名称.jpg"; //这里写保存时的图片名称
-
aLink.href = URL.createObjectURL(blob);
-
aLink.click();
-
},
-
},
-
-
mounted() {
-
//网上随便找的图片
-
const url =
-
"https://img0.百度.com/it/u=73689209,3130028231&fm=253&fmt=auto&app=138&f=JPEG";
-
axios
-
.get(url, {
-
responseType: "blob", //一定要传!!!
-
})
-
.then((res) => {
-
console.log(res.data, "二进制流");
-
this.getBase64(res.data).then((binary) => {
-
console.log(binary, "base64");
-
this.imgSrc = binary;
-
});
-
});
-
},
-
};
-
</script>
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhghebhk
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13