• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# OffscreenCanvas对象
2<!--Kit: ArkUI-->
3<!--Subsystem: ArkUI-->
4<!--Owner: @sd-wu-->
5<!--Designer: @sunbees-->
6<!--Tester: @liuli0427-->
7<!--Adviser: @HelloCrease-->
8
9>  **说明:**
10>  从API version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
11
12
13可以离屏渲染的canvas对象。
14
15
16## 属性
17
18| 属性     | 类型     | 描述                          |
19| ------ | ------ | --------------------------- |
20| width  | number | offscreen&nbsp;canvas对象的宽度。 |
21| height | number | offscreen&nbsp;canvas对象的高度。 |
22
23
24## 方法
25
26
27### getContext
28
29getContext(contextId: string, options?: CanvasRenderingContext2DSettings): OffscreenCanvasRenderingContext2D
30
31获取offscreen canvas绘图上下文,返回值为2D绘制对象。
32
33**参数:**
34
35| 参数名       | 参数类型                                     | 必填   | 描述                     |
36| --------- | ---------------------------------------- | ---- | ---------------------- |
37| contextId | string                                   | 是    | 仅支持&nbsp;'2d'。         |
38| options   | [CanvasRenderingContext2DSettings](#canvasrenderingcontext2dsettings) | 否    | 当前仅支持配置是否开启抗锯齿功能,默认为关闭。 |
39
40**返回值:**
41
42| 类型                                       | 说明                          |
43| ---------------------------------------- | --------------------------- |
44| [OffscreenCanvasRenderingContext2D](js-offscreencanvasrenderingcontext2d.md) | 2D绘制对象,用于在画布组件上绘制矩形、文本、图片等。 |
45
46### CanvasRenderingContext2DSettings
47
48CanvasRenderingContext2DSettings(antialias?: boolean)
49
50用来配置OffscreenCanvasRenderingContext2D对象的参数,包括是否开启抗锯齿。
51
52| 参数名       | 类型      | 说明                  |
53| --------- | ------- | ------------------- |
54| antialias | boolean | 是否开启抗锯齿功能,默认为false,表示不开启抗锯齿功能。 |
55
56### toDataURL
57
58toDataURL(type?: string, quality?:number): string
59
60生成一个包含图片展示的URL。
61
62**参数:**
63
64| 参数名     | 参数类型   | 必填   | 描述                                       |
65| ------- | ------ | ---- | ---------------------------------------- |
66| type    | string | 否    | 可选参数,用于指定图像格式,默认格式为image/png。            |
67| quality | number | 否    | 在指定图片格式为image/jpegimage/webp的情况下,可以从0到1的区间内选择图片的质量。如果超出取值范围,将会使用默认值0.92。 |
68
69**返回值:**
70
71| 类型     | 说明        |
72| ------ | --------- |
73| string | 图像的URL地址。 |
74
75
76### transferToImageBitmap
77
78transferToImageBitmap(): ImageBitmap
79
80在离屏画布最近渲染的图像上创建一个ImageBitmap对象。
81
82**返回值:**
83
84| 类型                                       | 说明              |
85| ---------------------------------------- | --------------- |
86| [ImageBitmap](js-components-canvas-imagebitmap.md) | 存储离屏画布上渲染的像素数据。 |
87
88
89## 示例
90
91```html
92<!-- xxx.hml -->
93<div>
94  <canvas ref="canvasId" style="width: 200px; height: 150px; background-color: #ffff00;"></canvas>
95</div>
96```
97
98```js
99//xxx.js
100export default {
101  onShow() {
102    var canvas = this.$refs.canvasId.getContext('2d');
103    var offscreen = new OffscreenCanvas(500,500);
104    var offscreenCanvasCtx = offscreen.getContext("2d");
105
106    // ... some drawing for the canvas using the offscreenCanvasCtx ...
107
108    var dataURL = offscreen.toDataURL();
109    console.log(dataURL); //data:image/png;base64,xxxxxx
110
111    var bitmap = offscreen.transferToImageBitmap();
112    canvas.transferFromImageBitmap(bitmap);
113  }
114}
115```
116
117