更新记录

1.1.0(2024-09-15) 下载此版本

兼容vue2

1.0.0(2024-07-20) 下载此版本

目前只支持文本,图片,矩形的绘制


平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
app-vue ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × ×

参数说明

model 参数说明

参数 说明 类型
width canvas 宽度 string
height canvas 高度 string
data canvas 内容 {}Array
@changeImage 获取 canvas 绘制后的图片 string
$ref.XXX.getCanvas() 开始绘制 canvas /

model.data 参数说明

参数 说明 类型 可选参数
type canvas 绘制的类型 string text:绘制文本;image: 绘制图片;fillRect:绘制矩形
width canvas 宽度 string /
height canvas 高度 string /
x canvas X 轴坐标 number /
y canvas Y 轴坐标 number /
url url 地址(type=image 时有效) string /
text 文本,可以是多文本,会自动换行(type=text 时有效) string /
textAlign 文本对其方式(type=text 时有效) string left:左对齐,center:居中,right:右对齐
fontsize 文本字体大小,单位是 px(type=text 时有效) number /
color 文本颜色(type=text 时有效) number /
background 矩形的颜色(type=fillRect 时有效) number /

使用方法

方法一 (示例vue2)
<template>
  <view class="content">
    <FCanvas
      ref="CanvasImgref"
      @changeImage="changeImage"
      :model="canvasMode"
    />
    <img :src="img" alt="" />
  </view>
</template>

<script>
  // 用vue3的话就改成canvas-vue3.vue
  import FCanvas from "@/components/fei-canvas/canvas-vue2.vue";
  export default {
    components: { FCanvas },
    data() {
      return {
        canvasMode: {
          width: 500, // canvas的宽
          height: 500, // canvas的高
          data: [], // canvas的内容
        },
        img: "",
      };
    },
    onShow() {
      // < !--设置canvas的内容 -->
      this.getA();
    },
    methods: {
      changeImage(e) {
        console.log(e); // e:绘制完成的图片地址
        this.img = e;
      },
      getA() {
        this.canvasMode = {
          width: 100,
          height: 200,
          data: [
            //   {
            //   type: 'image', // 绘制图片类型
            //   x: 0,
            //   y: 0,
            //   width: 616,
            //   height: 914,
            //   url: 'url地址' // 背景图
            // },
            {
              type: "text", // 绘制文本类型
              text: "标题名标题名标题名",
              x: 0, // 如果对其方式是center,那么就是再308的位置开始居中展示
              y: 0,
              textAlign: "left", // 对其方式
              fontsize: 50, // 字体大小
              color: "#000",
            },
            {
              type: "fillRect", // 矩形
              background: "#000", // 矩形的颜色
              x: 0,
              y: 0,
              width: 2,
              height: 100,
            },
          ],
        };
        setTimeout(() => {
          // < !--延迟执行 -->
          this.$refs.CanvasImgref.getCanvas();
        }, 20);
      },
    },
  };
</script>

<style>
  .content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
</style>
方法二 (示例vue3)
<template>
  <view class="content">
    <FCanvas @changeImage="changeImage" :model="canvasMode">
      <button>按钮,可以写任意样式,点击此处会直接绘制canvas</button>
    </FCanvas>
    <img :src="img" alt="" />
  </view>
</template>

<script lang="ts">
  // 用vue2的话就改成canvas-vue2.vue
   import { ref, defineComponent } from "vue";
  import FCanvas from "@/components/fei-canvas/canvas-vue3.vue";
  export default defineComponent({
    components: { FCanvas },
    setup() {
      return {
        canvasMode: {
          width: 500, // canvas的宽
          height: 500, // canvas的高
          data: [], // canvas的内容
        },
        img: "",
      };
    },
    onShow() {
      // < !--设置canvas的内容 -->
      this.getA();
    },
    methods: {
      changeImage(e) {
        console.log(e); // e:绘制完成的图片地址
        this.img = e;
      },
      getA() {
        this.canvasMode = {
          width: 100,
          height: 200,
          data: [
            //   {
            //   type: 'image', // 绘制图片类型
            //   x: 0,
            //   y: 0,
            //   width: 616,
            //   height: 914,
            //   url: 'url地址' // 背景图
            // },
            {
              type: "text", // 绘制文本类型
              text: "标题名标题名标题名",
              x: 0, // 如果对其方式是center,那么就是再308的位置开始居中展示
              y: 0,
              textAlign: "left", // 对其方式
              fontsize: 50, // 字体大小
              color: "#000",
            },
            {
              type: "fillRect", // 矩形
              background: "#000", // 矩形的颜色
              x: 0,
              y: 0,
              width: 2,
              height: 100,
            },
          ],
        };
      },
    },
  });
</script>

<style>
  .content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
</style>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

不包含

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问