# wxa-plugin-canvas
小程序组件-小程序海报组件
<a href="https://www.npmjs.com/package/wxa-plugin-canvas"><img src="https://img.shields.io/npm/v/wxa-plugin-canvas.svg?style=flat" alt="npm"></a>
<a href="https://www.npmjs.com/package/wxa-plugin-canvas"><img src="https://img.shields.io/npm/dm/wxa-plugin-canvas.svg?style=flat" alt="npm"></a>
## 概述
wxa-plugin-canvas是一个生成二维码海报的组件,通过非常简单的配置就可以生成精美的海报
## 生成效果
<img width="300" src="https://github.com/jasondu/wxa-plugin-canvas/blob/master/demo.png"></img>
## 组件原理说明文章
https://juejin.im/post/5b7e48566fb9a01a1059543f
## 使用之前
使用 wxa-plugin-canvas 前,请确保你已经学习过微信官方的 [小程序简易教程](https://mp.weixin.qq.com/debug/wxadoc/dev/) 和 [自定义组件介绍](https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/)。
## 安装
#### 方式一.通过 npm 安装 (推荐)
小程序已经支持使用 npm 安装第三方包,详见 [npm 支持](https://developers.weixin.qq.com/miniprogram/dev/devtools/npm.html?search-key=npm)
```
# npm
npm i wxa-plugin-canvas -S --production
# yarn
yarn add wxa-plugin-canvas --production
```
#### 方式二.下载代码
直接通过 git 下载 wxa-plugin-canvas 源代码,并将`miniprogram_dist`目录拷贝到自己的项目组件目录中
## 使用组件
```json
{
"usingComponents": {
"poster": "wxa-plugin-canvas/poster",
}
}
```
接着就可以在 wxml 中直接使用组件
```html
<poster id="poster" config="{{posterConfig}}" bind:success="onPosterSuccess" bind:fail="onPosterFail">
<button>点击生成海报</button>
</poster>
```
## 使用注意事项
1. 图片的域名**务必**添加到downloadFile合法域名中(开发设置-服务器域名-downloadFile合法域名)
2. 如果要使用**异步生成海报**的方法,务必组件要加上`` id="poster"``
## 组件参数解释
### config字段
| 字段 | 类型 | 必填 | 描述 |
| --------------- | ------------------------ | ---- | ------------------------------------------ |
| width | Number(单位:rpx) | 是 | 画布宽度 |
| height | Number(单位:rpx) | 是 | 画布高度 |
| backgroundColor | String | 否 | 画布颜色 |
| debug | Boolean | 否 | false隐藏canvas,true显示canvas,默认false |
| pixelRatio | Number | 否 | 1为一般,值越大越清晰 |
| preload | Boolean | 否 | true:图片资源预下载 默认false |
| hide-loading | Boolean | 否 | true:隐藏loading 默认false |
| blocks | Object Array(对象数组) | 否 | 看下文 |
| texts | Object Array(对象数组) | 否 | 看下文 |
| images | Object Array(对象数组) | 否 | 看下文 |
| lines | Object Array(对象数组) | 否 | 看下文 |
### blocks字段
| 字段名 | 类型 | 必填 | 描述 |
| --------------- | ---------------- | ---- | -------------------------------------- |
| x | Number(单位:rpx) | 是 | 块的坐标 |
| y | Number(单位:rpx) | 是 | 块的坐标 |
| width | Number(单位:rpx) | 否 | 如果内部有文字,由文字宽度和内边距决定 |
| height | Number(单位:rpx) | 是 | |
| paddingLeft | Number(单位:rpx) | 否 | 内左边距 |
| paddingRight | Number(单位:rpx) | 否 | 内右边距 |
| borderWidth | Number(单位:rpx) | 否 | 边框宽度 |
| borderColor | String | 否 | 边框颜色 |
| backgroundColor | String | 否 | 背景颜色 |
| borderRadius | Number(单位:rpx) | 否 | 圆角 |
| text | Object | 否 | 块里面可以填充文字,参考texts字段解释 |
| zIndex | Int | 否 | 层级,越大越高 |
### texts字段
| 字段名 | 类型 | 必填 | 描述 |
| -------------- | ---------------- | ---- | ------------------------------------------------------------ |
| x | Number(单位:rpx) | 是 | 坐标 |
| y | Number(单位:rpx) | 是 | 坐标 |
| text | String\|Object | 是 | 当Object类型时,参数为text字段的参数,marginLeft、marginRight这两个字段可用(示例请看下文) |
| fontSize | Number(单位:rpx) | 是 | 文字大小 |
| color | String | 否 | 颜色 |
| opacity | Int | 否 | 1为不透明,0为透明 |
| lineHeight | Number(单位:rpx) | 否 | 行高 |
| lineNum | Int | 否 | 根据宽度换行,最多的行数 |
| width | Number(单位:rpx) | 否 | 没有指定为画布宽度 |
| marginLeft | Number(单位:rpx) | 否 | 当text字段为Object可以使用,用来控制多行文字间距 |
| marginRight | Number(单位:rpx) | 否 | 当text字段为Object可以使用,用来控制多行文字间距 |
| textDecoration | String | 否 | 目前只支持 line-through(贯穿线),默认为none |
| baseLine | String | 否 | top\| middle\|bottom基线对齐方式 |
| textAlign | String | 否 | left\|center\|right对齐方式 |
| zIndex | Int | 否 | 层级,越大越高 |
| fontFamily | String | 否 | 小程序默认字体为'sans-serif', 请输入小程序支持的字体,例如:'STSong' |
| fontWeight | String | 否 | 'bold'加粗字体,目前小程序不支持 100 - 900 加粗 |
| fontStyle | String | 否 | 'italic'倾斜字体 |
### images字段
| 字段 | 类型 | 必填 | 描述 |
| ------------ | ---------------- | ---- | ----------------------------------------- |
| x | Number(单位:rpx) | 是 | 右上角的坐标 |
| y | Number(单位:rpx) | 是 | 右上角的坐标 |
| url | String | 是 | 图片url(**需要添加到下载白名单域名中**)也支持本地图片 |
| width | Number(单位:rpx) | 是 | 宽度(**会根据图片的尺寸同比例缩放**) |
| height | Number(单位:rpx) | 是 | 高度(**会根据图片的尺寸同比例缩放**) |
| borderRadius | Number(单位:rpx) | 否 | 圆角,跟css一样 |
| borderW
徐浪老师
- 粉丝: 8554
- 资源: 1万+
最新资源
- (cuda12.4)causal-conv1d-cuda.cp310-win-amd64.pyd
- comsol多物理场仿真,电磁热分析,损耗计算,微波仿真
- 基于Windows的MFC标准框架开发的简易画图工具,可以作为C++语言、面向对象编程、MFC框架的学习练手.zip
- 课程设计 基于Python+tkinter+SQLServer实现的图书管理系统源码
- COMSOL代做 声子晶体仿真,一维,二维,三维能带图,带隙图,色散曲线,弹性波,声波
- C++-植物大战僵尸MFC版本-2025
- (cuda12.4)causal-conv1d-1.1.1-cp310-cp310-win-amd64.whl
- CAD贱人工具箱6.0免注册版
- 西门子1500 大型程序fanuc 机器人汽车焊装自动生产线程序 MES 系统通讯 大型程序fanuc机器人汽车焊装自动生产线程序程序经典结构清晰,SCL算法堆栈,梯形图和 SCL混编使用博图 V1
- 基于Hadoop平台的微博数据挖掘系统的设计与实现
- 字节跳动大模型应用实践与分享
- 20250110春节假期
- 甄嬛传之《我爱上班》诗朗诵PPT模版.pptx
- (Vim cuda12.4)selective-scan-cuda.cp310-win-amd64.pyd
- 异步电机按转子磁链直接定向SVPWM矢量控制仿真模型Matlab Simulink模型,含详细说明文档 仿真主体分为三个模块:主电路逆变模块、转子磁链定向控制模块和SVPWM模块 根据陈伯时运动控
- 字节跳动Agent企业专属AI应用创新平台
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈