1e41f4b71Sopenharmony_ci# canvas组件 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci> **说明:** 4e41f4b71Sopenharmony_ci> 从API version 4开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 5e41f4b71Sopenharmony_ci 6e41f4b71Sopenharmony_ci提供画布组件。用于自定义绘制图形。 7e41f4b71Sopenharmony_ci 8e41f4b71Sopenharmony_ci## 权限列表 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ci无 11e41f4b71Sopenharmony_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/jpeg或image/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