1# canvas组件
2
3>  **说明:**
4>  从API version 4开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
5
6提供画布组件。用于自定义绘制图形。
7
8## 权限列表
9
1011
12
13## 子组件
14
15不支持。
16
17
18## 属性
19
20支持[通用属性](js-components-common-attributes.md)。
21
22
23## 样式
24
25支持[通用样式](js-components-common-styles.md)。
26
27
28## 事件
29
30支持[通用事件](js-components-common-events.md)。
31
32
33## 方法
34
35除支持[通用方法](js-components-common-methods.md)外,还支持如下方法:
36
37
38### getContext
39
40getContext(type: '2d', options?:  ContextAttrOptions): CanvasRenderingContext2D
41
42获取canvas绘图上下文。不支持在onInit和onReady中进行调用。
43
44**参数:**
45
46| 参数名                  | 参数类型               | 必填   | 描述                                       |
47| -------------------- | ------------------ | ---- | ---------------------------------------- |
48| type                 | string             | 是    | 设置为'2d',返回值为2D绘制对象,该对象可用于在画布组件上绘制矩形、文本、图片等。 |
49| options<sup>6+</sup> | ContextAttrOptions | 否    | 当前仅支持配置是否开启抗锯齿功能,默认为关闭。                  |
50
51  **表1** ContextAttrOptions
52
53| 参数名       | 类型      | 说明                  |
54| --------- | ------- | ------------------- |
55| antialias | boolean | 是否开启抗锯齿功能,默认为false。 |
56
57**返回值:**
58
59| 类型                                       | 说明                   |
60| ---------------------------------------- | -------------------- |
61| [CanvasRenderingContext2D](js-components-canvas-canvasrenderingcontext2d.md) | 用于在画布组件上绘制矩形、文本、图片等。 |
62
63### toDataURL<sup>6+</sup>
64
65toDataURL(type?: string, quality?: number): string
66
67生成一个包含图片展示的URL。
68
69**参数:**
70
71| 参数名     | 参数类型   | 必填   | 描述                                       |
72| ------- | ------ | ---- | ---------------------------------------- |
73| type    | string | 否    | 可选参数,用于指定图像格式,默认格式为image/png。            |
74| quality | number | 否    | 在指定图片格式为image/jpegimage/webp的情况下,可以从0到1的区间内选择图片的质量。如果超出取值范围,将会使用默认值0.92。 |
75
76**返回值:**
77
78| 类型     | 说明        |
79| ------ | --------- |
80| string | 图像的URL地址。 |
81
82## 示例
83
84```html
85<!-- xxx.hml -->
86<div>
87  <canvas ref="canvas1" style="width: 200px; height: 150px; background-color: #ffff00;"></canvas>
88  <input type="button" style="width: 180px; height: 60px;" value="fillStyle" onclick="handleClick" />
89</div>
90```
91
92```js
93// xxx.js
94export default {
95  handleClick() {
96    const el = this.$refs.canvas1;
97    var dataURL = el.toDataURL();
98    console.log(dataURL);
99    // "data:image/png;base64,xxxxxxxx..."
100  }
101}
102```
103