• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# canvas组件<a name="ZH-CN_TOPIC_0000001209252175"></a>
2
3提供画布组件。用于自定义绘制图形。
4
5## 权限列表<a name="zh-cn_topic_0000001127284886_section11257113618419"></a>
6
78
9## 子组件<a name="zh-cn_topic_0000001127284886_section9288143101012"></a>
10
11不支持。
12
13## 属性<a name="zh-cn_topic_0000001127284886_section2907183951110"></a>
14
15支持[通用属性](js-components-common-attributes.md)。
16
17## 样式<a name="zh-cn_topic_0000001127284886_section5775351116"></a>
18
19支持[通用样式](js-components-common-styles.md)。
20
21## 事件<a name="zh-cn_topic_0000001127284886_section1729055142211"></a>
22
23支持[通用事件](js-components-common-events.md)。
24
25## 方法<a name="zh-cn_topic_0000001127284886_section47669296127"></a>
26
27除支持[通用方法](js-components-common-methods.md)外,还支持如下方法:
28
29<a name="zh-cn_topic_0000001127284886_td0f869ce272e4d90b1c7df558ad7635e"></a>
30<table><thead align="left"><tr id="zh-cn_topic_0000001127284886_rf11e90428c78465b9e3a0c3ec2222a3c"><th class="cellrowborder" valign="top" width="10.81%" id="mcps1.1.4.1.1"><p id="zh-cn_topic_0000001127284886_a11b4cb4edcf14b5584841b089cbea895"><a name="zh-cn_topic_0000001127284886_a11b4cb4edcf14b5584841b089cbea895"></a><a name="zh-cn_topic_0000001127284886_a11b4cb4edcf14b5584841b089cbea895"></a>名称</p>
31</th>
32<th class="cellrowborder" valign="top" width="26.19%" id="mcps1.1.4.1.2"><p id="zh-cn_topic_0000001127284886_ac56fe081db8a4ddca537c39d9abfcd33"><a name="zh-cn_topic_0000001127284886_ac56fe081db8a4ddca537c39d9abfcd33"></a><a name="zh-cn_topic_0000001127284886_ac56fe081db8a4ddca537c39d9abfcd33"></a>参数</p>
33</th>
34<th class="cellrowborder" valign="top" width="63%" id="mcps1.1.4.1.3"><p id="zh-cn_topic_0000001127284886_a05cdd2c741a54fe3a44575a5b2384be3"><a name="zh-cn_topic_0000001127284886_a05cdd2c741a54fe3a44575a5b2384be3"></a><a name="zh-cn_topic_0000001127284886_a05cdd2c741a54fe3a44575a5b2384be3"></a>描述</p>
35</th>
36</tr>
37</thead>
38<tbody><tr id="zh-cn_topic_0000001127284886_r960677f8f5e64d7f9b33b8a0ae0c824f"><td class="cellrowborder" valign="top" width="10.81%" headers="mcps1.1.4.1.1 "><p id="zh-cn_topic_0000001127284886_p931916913120"><a name="zh-cn_topic_0000001127284886_p931916913120"></a><a name="zh-cn_topic_0000001127284886_p931916913120"></a>getContext</p>
39</td>
40<td class="cellrowborder" valign="top" width="26.19%" headers="mcps1.1.4.1.2 "><p id="zh-cn_topic_0000001127284886_p685785963319"><a name="zh-cn_topic_0000001127284886_p685785963319"></a><a name="zh-cn_topic_0000001127284886_p685785963319"></a>getContext  ( type: '2d', attributes<sup id="zh-cn_topic_0000001127284886_sup1114274719338"><a name="zh-cn_topic_0000001127284886_sup1114274719338"></a><a name="zh-cn_topic_0000001127284886_sup1114274719338"></a>6+</sup>:  { antialias: boolean } ) =&gt; CanvasRendering2dContext</p>
41</td>
42<td class="cellrowborder" valign="top" width="63%" headers="mcps1.1.4.1.3 "><p id="zh-cn_topic_0000001127284886_p176180219405"><a name="zh-cn_topic_0000001127284886_p176180219405"></a><a name="zh-cn_topic_0000001127284886_p176180219405"></a>调用方法如下两种<sup id="zh-cn_topic_0000001127284886_sup520217171365"><a name="zh-cn_topic_0000001127284886_sup520217171365"></a><a name="zh-cn_topic_0000001127284886_sup520217171365"></a><span>6+</span></sup>:</p>
43<p id="zh-cn_topic_0000001127284886_p1161802114405"><a name="zh-cn_topic_0000001127284886_p1161802114405"></a><a name="zh-cn_topic_0000001127284886_p1161802114405"></a>var ctx = canvas.getContext(contextType);</p>
44<p id="zh-cn_topic_0000001127284886_p1161882115404"><a name="zh-cn_topic_0000001127284886_p1161882115404"></a><a name="zh-cn_topic_0000001127284886_p1161882115404"></a>var ctx = canvas.getContext(contextType, contextAttributes);</p>
45<p id="zh-cn_topic_0000001127284886_p1361802194016"><a name="zh-cn_topic_0000001127284886_p1361802194016"></a><a name="zh-cn_topic_0000001127284886_p1361802194016"></a>其中contextType为必填项,当前<span id="zh-cn_topic_0000001127284886_ph96538554519"><a name="zh-cn_topic_0000001127284886_ph96538554519"></a><a name="zh-cn_topic_0000001127284886_ph96538554519"></a>仅</span>支持"2d",contextAttributes为可选参数,当前仅支持配置是否开启抗锯齿功能,默认为关闭。</p>
46<p id="zh-cn_topic_0000001127284886_p1260014407342"><a name="zh-cn_topic_0000001127284886_p1260014407342"></a><a name="zh-cn_topic_0000001127284886_p1260014407342"></a><span id="zh-cn_topic_0000001127284886_ph1178411520620"><a name="zh-cn_topic_0000001127284886_ph1178411520620"></a><a name="zh-cn_topic_0000001127284886_ph1178411520620"></a>获取canvas绘图上下文</span><span id="zh-cn_topic_0000001127284886_ph84401347573"><a name="zh-cn_topic_0000001127284886_ph84401347573"></a><a name="zh-cn_topic_0000001127284886_ph84401347573"></a>,</span><span id="zh-cn_topic_0000001127284886_ph175721426712"><a name="zh-cn_topic_0000001127284886_ph175721426712"></a><a name="zh-cn_topic_0000001127284886_ph175721426712"></a>参数仅支持</span><span id="zh-cn_topic_0000001127284886_ph195904508914"><a name="zh-cn_topic_0000001127284886_ph195904508914"></a><a name="zh-cn_topic_0000001127284886_ph195904508914"></a>“2d”,</span>返回值为2D绘制对象,该对象提供具体的2D绘制操作。详见<a href="js-components-canvas-canvasrenderingcontext2d.md">CanvasRenderingContext2D对象</a>章节。</p>
47<p id="zh-cn_topic_0000001127284886_p14183154363412"><a name="zh-cn_topic_0000001127284886_p14183154363412"></a><a name="zh-cn_topic_0000001127284886_p14183154363412"></a>不支持在onInit和onReady中进行调用。</p>
48</td>
49</tr>
50<tr id="zh-cn_topic_0000001127284886_row13364759185512"><td class="cellrowborder" valign="top" width="10.81%" headers="mcps1.1.4.1.1 "><p id="zh-cn_topic_0000001127284886_p5364145915552"><a name="zh-cn_topic_0000001127284886_p5364145915552"></a><a name="zh-cn_topic_0000001127284886_p5364145915552"></a>toDataURL<sup id="zh-cn_topic_0000001127284886_sup822112587185"><a name="zh-cn_topic_0000001127284886_sup822112587185"></a><a name="zh-cn_topic_0000001127284886_sup822112587185"></a>6+</sup></p>
51</td>
52<td class="cellrowborder" valign="top" width="26.19%" headers="mcps1.1.4.1.2 "><p id="zh-cn_topic_0000001127284886_p12364115935515"><a name="zh-cn_topic_0000001127284886_p12364115935515"></a><a name="zh-cn_topic_0000001127284886_p12364115935515"></a>string type, number encoderOptions</p>
53</td>
54<td class="cellrowborder" valign="top" width="63%" headers="mcps1.1.4.1.3 "><p id="zh-cn_topic_0000001127284886_p1336455955512"><a name="zh-cn_topic_0000001127284886_p1336455955512"></a><a name="zh-cn_topic_0000001127284886_p1336455955512"></a>生成一个包含图片展示的URL。</p>
55<a name="zh-cn_topic_0000001127284886_ul155726311612"></a><a name="zh-cn_topic_0000001127284886_ul155726311612"></a><ul id="zh-cn_topic_0000001127284886_ul155726311612"><li>type:可选参数,用于指定图像格式,默认格式为image/png。</li><li>encoderOptions:在指定图片格式为image/jpegimage/webp的情况下,可以从0到1的区间内选择图片的质量。如果超出取值范围,将会使用默认值0.92。</li></ul>
56</td>
57</tr>
58</tbody>
59</table>
60
61## 示例<a name="zh-cn_topic_0000001127284886_section42931433142318"></a>
62
63```
64<!-- xxx.hml -->
65<div>
66  <canvas ref="canvas1" style="width: 200px; height: 150px; background-color: #ffff00;"></canvas>
67  <input type="button" style="width: 180px; height: 60px;" value="fillStyle" onclick="handleClick" />
68</div>
69```
70
71```
72// xxx.js
73export default {
74  handleClick() {
75    const el = this.$refs.canvas1;
76    var dataURL = el.toDataURL();
77    console.log(dataURL);
78    // "data:image/png;base64,xxxxxxxx..."
79  }
80}
81```
82
83