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