首页 前端知识 html2canvas截图下载图片

html2canvas截图下载图片

2024-09-21 21:09:16 前端知识 前端哥 265 210 我要收藏

实现效果:

二维码是从后端获取的,背景图是前端固定的,要求是背景图和二维码一起下载下来,需要转成canvas下载

代码:

安装:

npm install --save html2canvas
复制

html:

<div id="img" class="p-4 flex justify-center">
<van-image
class="relative flex justify-center"
width="322"
height="362"
:src="require('@/assets/images/qrisBg.png')"
alt=""
>
<img
class="absolute"
width="220"
height="220"
:src="require('@/assets/images/qr_code.png')"
style="top: 26px"
alt=""
/>
<div class="absolute bottom-4">
<div
class="text-[#FFFEFE] text-base font-semibold text-center mb-2"
>
Scan OR code
</div>
<div class="text-xs text-[#fff] text-center">
{{ $t("cashier.qrisBgText") }}
</div>
</div>
</van-image>
</div>
复制

点击事件:

<div class="px-5 py-5">
<van-button
class="rounded-lg"
color="#36D28F"
block
@click="downloadImg"
>{{ $t("cashier.download") }}</van-button
>
</div>
复制

在要下载的div添加一个id,通过点击事件下载

js:

methods: {
async downloadImg() {
let canvas = await html2canvas(document.querySelector("#img"), {
dpi: window.devicePixelRatio * 2, // 对应屏幕的dpi,适配高清屏,解决canvas模糊问题
scale: 2, // 缩放
allowTaint: true, // 是否使用图片跨域
useCORS: true, // 是否使用图片跨域
// y: window.scrollY // 根据滚动条来截取--主要用于截取某一个区域
proxy: "https://sandbox-payment.winpay.id/",
});
// canvas参数为生成的canvas的dom节点,可以对其进行dom操作
// document.getElementById("img").appendChild(canvas);
// 下载功能
var save_url = canvas.toDataURL("image/png");
var a = document.createElement("a");
document.body.appendChild(a);
a.href = save_url;
a.download = "";
a.click();
},
},
复制

转载请注明出处或者链接地址:https://www.qianduange.cn//article/18476.html
标签
评论
还可以输入200
共0条数据,当前/页
发布的文章

安装Nodejs后,npm无法使用

2024-11-30 11:11:38

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!