uniapp 使用canvas
时间: 2025-05-06 22:39:04 浏览: 23
### 如何在 UniApp 中使用 Canvas 进行开发和绘图
#### 创建 Canvas 组件
为了能够在 UniApp 应用程序中利用 `Canvas` 功能,首先需要创建一个 `<canvas>` 组件并为其指定唯一的 ID 或者 canvas-id 属性以便后续操作该组件。
```html
<template>
<view class="container">
<!-- 定义 canvas 组件 -->
<canvas type="2d" id="myCanvas" canvas-id="myCanvas"></canvas>
</view>
</template>
<script>
export default {
mounted() {
const query = uni.createSelectorQuery().in(this);
query.select('#myCanvas')
.fields({ node: true, size: true })
.exec((res) => {
let canvas = res[0].node;
let ctx = canvas.getContext('2d');
// 开始在此处编写绘图逻辑...
});
}
}
</script>
```
#### 使用 CanvasRenderingContext2D API 进行绘制
一旦获取到了上下文对象 (`ctx`) ,就可以通过调用各种方法来实现不同类型的图形渲染。例如:
- **绘制矩形**
可以填充或者描边矩形形状
```javascript
ctx.fillStyle = 'blue'; // 设置颜色为蓝色
ctx.fillRect(10, 10, 150, 80); // 填充一个宽高分别为150px 和 80px 的矩形区域[^2]
ctx.strokeStyle = 'red';
ctx.strokeRect(170, 10, 150, 80); // 描边另一个相同大小的位置不同的矩形
```
- **绘制线条**
利用 moveTo(), lineTo() 方法定义路径,并最终 stroke() 来完成实际的绘画过程。
```javascript
ctx.beginPath();
ctx.moveTo(50, 50);
ctx.lineTo(200, 50);
ctx.lineWidth = 5; // 设定线宽
ctx.stroke(); // 执行绘制命令
```
- **保存图像数据**
如果想要导出当前画布上的内容作为图片文件,则可以通过 toDataURL 函数获得 base64 编码后的字符串表示形式的数据 URL。
```javascript
var imgDataUrl = canvas.toDataURL("image/png");
console.log(imgDataUrl);
```
上述代码片段展示了如何初始化以及基本的操作方式,在具体项目里可以根据需求调整参数值或增加更多复杂的功能特性[^3]。
阅读全文
相关推荐

















