博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信小程序海报生成组件封装
阅读量:6280 次
发布时间:2019-06-22

本文共 1986 字,大约阅读时间需要 6 分钟。

每个小程序成型后,一般都会选择生成带菊花码的海报分享出去来吸引更多的流量。下面来介绍下他的一种实现方式吧

组件Github地址: https://github.com/WGinit/mini-poster

原理:主要利用微信小程序强大的Canvas API来合成,生成后可用wx.canvasToTempFilePath()导出图片地址,从而可实现预览及保存至手机相册

一、如何使用

打开项目文件夹

1、git  clone  https://github.com/WGinit/mini-poster.git复制代码

2、在待使用页面Json文件中注册该组件

{ “usingComponents“:  { “share-image“: “/components/share_image/share_image“ }}复制代码

3、在页面中使用该组件

复制代码

二、参数配置

dataList: {    canvasData:{      type: 'image',      url: '',      top: 0,      left: 0,      width: 750,      height: 1334,      comment: '背景图',      btnText: '保存至相册'    },    content: [{      type: 'image',      url: '',      top: 136,      left: 100,      shape: 'square',      width: 290,      height: 186,      comment: '头像'    }, {      type: 'text',      content: '白山羊',      top: 336,      left: 100,      fontSize: 40,      lineHeight: 40,      color: '#f00',      textAlign: 'left',      weight: 'bold',      maxWidth: 287    }]  }复制代码

三、参数说明

canvasData------------canvas相关参数配置

参数 类型 默认值 必填 说明
type String image 文件类型, 这里为背景图,默认image
url String '' 网络图片地址
top Number 0 图像的左上角在可视区域上 Y 轴的位置, 单位px
left Number 0 图像的左上角在可视区域上 X 轴的位置, 单位px
width Number 750 画布的宽度, 单位px
height Number 1334 画布的高度, 单位px
comment String '背景图' 图片描述
btnText String '保存至相册' 生成按钮文字

content -------绘制内容参数

参数 类型 默认值 必填 说明
type String '' 绘制的类型,可选image和text
shape String 'square' 绘制图片的形状, square 方形, circle 圆形
url String '' - 图片的网络地址, type为image必填
content String '' - 文本内容, type为text必填
top Number 0 图像的左上角在目标画布上 Y 轴的位置, 单位px
left NUmber 0 图像的左上角在目标画布上 X 轴的位置, 单位px
width Number 100 绘制图片的宽度,单位px
height Number 100 绘制图片的高度, 单位px
comment String '' 绘制图片的说明
fontSize Number 32 文本字体大小,单位px
lineHeight Number 32 文本行高, 单位px
color String '#FFFFFF ' 文本字体颜色
textAlign String 'center' 文本水平对齐方式, 可选left, center, right
weight String 'normal' 文本字体粗细
maxWidth Number 600 文本限制的最大宽度,单位px

四、备注

上述单位都是参照设计稿(750 * 1334)而来,实际情况可直接按设计稿上尺寸配置参数.

转载于:https://juejin.im/post/5b67ae3d5188251b1d4780cf

你可能感兴趣的文章
2019年-年终总结
查看>>
聊聊elasticsearch的RoutingService
查看>>
让人抓头的Java并发(一) 轻松认识多线程
查看>>
从源码剖析useState的执行过程
查看>>
地包天如何矫正?
查看>>
中间件
查看>>
Android SharedPreferences
查看>>
css面试题
查看>>
Vue组建通信
查看>>
用CSS画一个带阴影的三角形
查看>>
前端Vue:函数式组件
查看>>
程鑫峰:1.26特朗.普力挺美元力挽狂澜,伦敦金行情分析
查看>>
safari下video标签无法播放视频的问题
查看>>
01 iOS中UISearchBar 如何更改背景颜色,如何去掉两条黑线
查看>>
对象的继承及对象相关内容探究
查看>>
Spring: IOC容器的实现
查看>>
Serverless五大优势,成本和规模不是最重要的,这点才是
查看>>
Nginx 极简入门教程!
查看>>
iOS BLE 开发小记[4] 如何实现 CoreBluetooth 后台运行模式
查看>>
Item 23 不要在代码中使用新的原生态类型(raw type)
查看>>