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