微信小程序中,canvas使用场景主要是
1. 制作分享图片 (小程序码,自定义文本等)
2. 自定义设计
这里主要介绍制作分享图片的流程以及注意点
1. wxml中添加 canvas 标签,设置样式
需要设置canvas标签的宽高,canvas-id等基础属性
2. 封装绘制画布的方法 wx.createCanvasContext(string canvasId, Object this)
绘制画布好比布局,参考小程序API,进行相应绘制。
2.1 绘制顺序需要按照显示的层级来。底层内容先绘制
2.2 带有圆角的背景可以使用 “矩形 + 半圆” 组合,矩形长度可以利用文本长度估算
2.3 绘制完成调用 draw()
3. 将画布的内容生成图片,并且保存到本地相册
3.1 将绘制完成的画布调用画布API生成临时图片
3.2 临时图片保存到相册
注意点
1. canvas 是原生组件,所以z-index对其无效。需要在 canvas 显示其他元素可以参考原生组件使用限制
2. 设置 canvas 的显示隐藏不能用 v-if 应该用 hidden
3. canvas 要绘制的图片必须是本地图片,故可将服务器图片下载到本地进行绘制 wx.downloadFile()
4. canvas 绘制使用的单位都是 px 所以设置 宽高应该都是 px 。或者全部都是用自定义比例