zoukankan      html  css  js  c++  java
  • Vue移动端h5使用canvas将页面生成海报 保存分享 (html2canvas)

    <template>
      <div>
        <div class="qrcodeposter_wrap" v-if="showDom" id="canvasPoster">
          <img class="avatar_pic" :src="avatarImg"  @load="imgLoad" alt />
          <div class="name">{{userName}}</div>
          <div class="interview">邀请你加入代表通</div>
          <div class="title">#扫描下方二维码邀请目标医生 加入专区#</div>
          <!-- <div class="qrcode_img">{{avatarImg}}</div> -->
          <!-- wx -->
          <div class="codeImg" style="1.45rem;height:1.45rem;margin:.15rem auto" id="qrCode"></div>
          <div class="footer_txt">
            邀请语:圣诞快乐!感谢您仍奋战在守护人类健康的第一线
            ,愿您重视自己的健康生活和能力,以提供最高水准的医疗
          </div>
        </div>
        <img style="100%;height:100%" :src="dataImg" v-if="dataImg" alt>
      </div>
    </template>
    import QRCode from "qrcode2";
    import html2canvas from "html2canvas";
    
    export default {
      data() {
        return {
          avatarImg: "",
          userName: "",
           showDom: true,
          dataImg:''
        };
      },
      created() {
        this.userName = this.curUser.userName;
        this.avatarImg = this.curUser.url;
      },
    
      computed: {
        ...mapGetters({
          curUser: "user/curUser",
        }),
      },
      mounted() {
        this.QCode();
      },
      methods: {
        // 创建海报
        createPoster() {
          const poster = document.getElementById("canvasPoster");
          html2canvas(poster, {
            dpi: window.devicePixelRatio * 2,
            backgroundColor: "#fff",
            useCORS: true,
            scale: 2,
            async: true,
          }).then((canvas) => {
            this.dataImg = canvas.toDataURL("image/jpeg");
            this.showDom = false;
          });
        },
        imgLoad() {
          this.createPoster();
        },
        // wx 二维码
        QCode() {
          let qrcode = new QRCode("qrCode", {
             150,
            height: 150, // 高度
            text: `${location.origin}${location.pathname}/#/?inviteUid=${this.curUser.userId}`,
            colorDark: "#000",
            colorLight: "#fff",
          });
        },
      },
    };
    </script>
  • 相关阅读:
    共享纸巾更换主板代码分析 共享纸巾主板更换后的对接代码
    Python Django Ajax 传递列表数据
    Python Django migrate 报错解决办法
    Python 创建字典的多种方式
    Python 两个list合并成一个字典
    Python 正则 re.sub替换
    python Django Ajax基础
    Python Django 获取表单数据的三种方式
    python Django html 模板循环条件
    Python Django ORM 字段类型、参数、外键操作
  • 原文地址:https://www.cnblogs.com/xiaolucky/p/13535003.html
Copyright © 2011-2022 走看看