Vue 生成海报的插件vue-canvas-poster

一、npm 安装vue-canvas-poster

npm i vue-canvas-poster --save

二 、在main.js 中引入:

import VueCanvasPoster from 'vue-canvas-poster'
Vue.use(VueCanvasPoster)

三、代码如下

<template>
  <div class="aaa">
    <vue-canvas-poster
      :widthPixels="0"
      :painting="painting"
      @success="success"
      @fail="fail"
    ></vue-canvas-poster>

    <img :src="posterImg" />
  </div>
</template>
<script>
import Vue from "vue";

// 导入组件库
import VueCanvasPoster from "vue-canvas-poster";
// 注册组件库
Vue.use(VueCanvasPoster);
export default {
  data() {
    return {
      painting: {
        width: `${document.documentElement.clientWidth}px`,
        height: `${document.documentElement.clientWidth * 2.0187}px`,
        background: "#f4f5f7",
        views: [
          {
            type: "image",
            url: require("../../static/img/bg1.jpg"),
            css: {
              width: `${document.documentElement.clientWidth}px`,
              height: `${document.documentElement.clientWidth * 2.0187}px`,
              top: "0",
            },
          },
          {
            type: "image",
            url: require("../../static/img/bg1.jpg"),
            css: {
              width: `${document.documentElement.clientWidth / 3.5}px`,
              height: `${document.documentElement.clientWidth / 3.5}px`,
              top: `${document.documentElement.clientWidth / 5.5}px`,
              left: `${document.documentElement.clientWidth / 2.8}px`,
            },
          },
          {
            type: "qrcode",
            content: "19263",
            css: {
              top: `${document.documentElement.clientWidth / 1}px`,
              left: `${document.documentElement.clientWidth / 2.5}px`,
              color: "#333",
              width: `${document.documentElement.clientWidth / 5}px`,
              height: `${document.documentElement.clientWidth / 5}px`,
            },
          },
          {
            type: "text",
            text: "兜兜里裹糖@",
            css: [
              {
                top: `${document.documentElement.clientWidth / 2}px`,
                left: `${document.documentElement.clientWidth / 2.7}px`,
                color: "rgba(52,52,52,1)",
                fontSize: "17px",
              },
            ],
          },
          {
            type: "text",
            text: "- 长按保存二维码 -",
            css: [
              {
                top: `${document.documentElement.clientWidth * 1.5}px`,
                left: `${document.documentElement.clientWidth / 3}px`,
                color: "rgba(52,52,52,1)",
                fontSize: "17px",
              },
            ],
          },
        ],
      },
      posterImg: "",
    };
  },
  computed: {},
  methods: {
    success(src) {
      console.log(src);
      this.posterImg = src;
    },
    fail(err) {
      console.log("fail", err);
    },
  },
};
</script>
<style lang="less" scoped>
.aaa {
  width: 100vw;
  height: 100vh;
  background: rgb(94, 131, 92);
}
</style>

四 、效果图:
在这里插入图片描述

五 、文档
Vue Canvas Poster文档:https://sunniejs.github.io/vue-canvas-poster/#/README

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值