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

html2canvas截图下载图片

2024-09-21 21:09:16 前端知识 前端哥 260 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
标签
评论
发布的文章

Excel-to-JSON开源项目指南

2024-10-27 22:10:41

json字符串, string转json

2024-10-27 22:10:16

【开源】APIJSON 框架

2024-10-27 22:10:15

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