uniapp canvas绘图
问题描述
根据项目需求,将商品的图片,用户头像,二维码,商品信息绘制到分享海报中。
效果展示

参数介绍
| 参数 | 类型 | 说明 |
|---|---|---|
| avatarImg | String | 头像图片 |
| bgImg | String | 背景图片 |
| qrImg | String | 二维码 |
| goodsImg | String | 商品图片 |
| iconImg | String | 平台icon |
| goodsTitle | String | 商品名称 |
| realPrice | String | 真实价格 |
| price | String | 价格 |
| canvasH | Number | 画布高度 |
| widthRatio | Number | 画布宽度比例 |
核心代码
1 | setTimeout(() => { |
相关解析
uni.createCanvasContext(canvasId, this)
创建canvas绘图上下文。
| 参数 | 类型 | 说明 |
|---|---|---|
| canvasId | String | 传入定义在 <canvas/> 的 canvas-id或id的唯一标识 |
| this | Object | 组件实例 this ,不可省略 |
beginPath()
开始创建一个路径
setFillStyle(color)
设置填充色
fillRect(x, y, width, height)
设置填充一个矩形的位置和大小。
| 参数 | 类型 | 定义 |
|---|---|---|
| x | Number | 矩形路径左上角的x坐标 |
| y | Number | 矩形路径左上角的y坐标 |
| width | Number | 矩形路径的宽度 |
| height | Number | 矩形路径的高度 |
drawImage()
将图片绘制到画布上,有三个版本的写法:
drawImage(imageResource,dx, dy)drawImage(imageResource,dx, dy, dWidth, dHeight)drawImage(imageResource,sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)
| 参数 | 类型 | 说明 |
|---|---|---|
| imageResource | String | 所要绘制的图片资源 |
| dx | Number | 图像的左上角在 X 轴的位置 |
| dy | Number | 图像的左上角在 Y 轴的位置 |
| dWidth | Number | 绘制图像的宽度 |
| dHeight | Number | 绘制图像的高度 |
| sx | Number | 源图像的矩形选择框的左上角 X 坐标 |
| sy | Number | 源图像的矩形选择框的左上角 Y 坐标 |
| sWidth | Number | 矩形选择框的高度 |
| sHeight | Number | 矩形选择框的高度 |
setFontSize(size)
设置字体的大小
fillText(text, x, y, maxWidth)
在画布上绘制文本
| 参数 | 类型 | 说明 |
|---|---|---|
| text | String | 文本 |
| x | Number | 文本的左上角x坐标位置 |
| y | Number | 文本的左上角y坐标位置 |
| maxWidth | Number | 绘制的最大宽度(选填) |
setStrokeStyle(color)
设置边框颜色,默认颜色为 black。
setLineWidth(width)
设置线条的宽度。
moveTo(x, y)
把路径移动到画布中的指定点
| 参数 | 类型 | 说明 |
|---|---|---|
| x | Number | 位置的x坐标 |
| y | Number | 位置的y坐标 |
lineTo(x, y)
增加一个新点,然后创建一条从上次指定点到目标点的线
| 参数 | 类型 | 说明 |
|---|---|---|
| x | Number | 位置的x坐标 |
| y | Number | 位置的y坐标 |
stroke()
画出当前路径的线条
stroke() 描绘的的路径是从 beginPath() 开始计算,将moveTo(x, y),lineTo(x, y)等相关路径描绘画出来。
draw(reserve, callback)
将绘图上下文中的描述(路径、变形、样式)画到 <canvas />中。
| 参数 | 类型 | 说明 |
|---|---|---|
| reserve | Boolean | 本次绘制是否接着上一次绘制默认 false |
| callback | Function | 绘制完成后回调 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 欢迎访问shaoin的博客!