1e41f4b71Sopenharmony_ci# OffscreenCanvas
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci>  **NOTE**
4e41f4b71Sopenharmony_ci>
5e41f4b71Sopenharmony_ci>  The APIs of this component are supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_ci**OffscreenCanvas** defines a canvas object that can be rendered off the screen.
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci## Attributes
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci| Name    | Type    | Description                         |
14e41f4b71Sopenharmony_ci| ------ | ------ | --------------------------- |
15e41f4b71Sopenharmony_ci| width  | number | Width of the **OffscreenCanvas** object.|
16e41f4b71Sopenharmony_ci| height | number | Height of the **OffscreenCanvas** object.|
17e41f4b71Sopenharmony_ci
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci## Methods
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ci### getContext
23e41f4b71Sopenharmony_ci
24e41f4b71Sopenharmony_cigetContext(type: string, options?: CanvasRenderingContext2DSettings): OffscreenCanvasRenderingContext2D
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_ciObtains the **OffscreenCanvas** context. This API returns a 2D drawing object.
27e41f4b71Sopenharmony_ci
28e41f4b71Sopenharmony_ci**Parameters**
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci| Name      | Type                                    | Mandatory  | Description                    |
31e41f4b71Sopenharmony_ci| --------- | ---------------------------------------- | ---- | ---------------------- |
32e41f4b71Sopenharmony_ci| contextId | string                                   | Yes   | Context ID. The value can only be **"2d"**.        |
33e41f4b71Sopenharmony_ci| options   | [CanvasRenderingContext2DSettings](#canvasrenderingcontext2dsettings) | No   | Whether to enable anti-aliasing. By default, anti-aliasing is disabled.|
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci**Return value** 
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ci| Type                                      | Description                         |
38e41f4b71Sopenharmony_ci| ---------------------------------------- | --------------------------- |
39e41f4b71Sopenharmony_ci| [OffscreenCanvasRenderingContext2D](js-offscreencanvasrenderingcontext2d.md) | 2D drawing object, which can be used to draw rectangles, images, and texts, on the **OffscreenCanvas**.|
40e41f4b71Sopenharmony_ci
41e41f4b71Sopenharmony_ci### CanvasRenderingContext2DSettings
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ciCanvasRenderingContext2DSettings(antialias?: boolean)
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ciConfigures the settings of an **OffscreenCanvasRenderingContext2D** object, including whether to enable antialiasing.
46e41f4b71Sopenharmony_ci
47e41f4b71Sopenharmony_ci| Name      | Type     | Description                 |
48e41f4b71Sopenharmony_ci| --------- | ------- | ------------------- |
49e41f4b71Sopenharmony_ci| antialias | boolean | Whether to enable anti-aliasing. The default value is **false**.|
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ci### toDataURL
52e41f4b71Sopenharmony_ci
53e41f4b71Sopenharmony_citoDataURL(type?: string, quality?:number): string
54e41f4b71Sopenharmony_ci
55e41f4b71Sopenharmony_ciGenerates a URL containing image display information.
56e41f4b71Sopenharmony_ci
57e41f4b71Sopenharmony_ci**Parameters**
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci| Name    | Type  | Mandatory  | Description                                      |
60e41f4b71Sopenharmony_ci| ------- | ------ | ---- | ---------------------------------------- |
61e41f4b71Sopenharmony_ci| type    | string | No   | Image format. The default value is **image/png**.           |
62e41f4b71Sopenharmony_ci| quality | number | No   | Image quality, which ranges from 0 to 1, when the image format is **image/jpeg** or **image/webp**. If the set value is beyond the value range, the default value **0.92** is used.|
63e41f4b71Sopenharmony_ci
64e41f4b71Sopenharmony_ci**Return value** 
65e41f4b71Sopenharmony_ci
66e41f4b71Sopenharmony_ci| Type    | Description       |
67e41f4b71Sopenharmony_ci| ------ | --------- |
68e41f4b71Sopenharmony_ci| string | Image URL.|
69e41f4b71Sopenharmony_ci
70e41f4b71Sopenharmony_ci
71e41f4b71Sopenharmony_ci### transferToImageBitmap
72e41f4b71Sopenharmony_ci
73e41f4b71Sopenharmony_citransferToImageBitmap(): ImageBitmap
74e41f4b71Sopenharmony_ci
75e41f4b71Sopenharmony_ciCreates an **ImageBitmap** object on the most recently rendered image of the **OffscreenCanvas**.
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ci**Return value** 
78e41f4b71Sopenharmony_ci
79e41f4b71Sopenharmony_ci| Type                                      | Description             |
80e41f4b71Sopenharmony_ci| ---------------------------------------- | --------------- |
81e41f4b71Sopenharmony_ci| [ImageBitmap](js-components-canvas-imagebitmap.md) | Pixel data rendered on the **OffscreenCanvas**.|
82e41f4b71Sopenharmony_ci
83e41f4b71Sopenharmony_ci
84e41f4b71Sopenharmony_ci## Example
85e41f4b71Sopenharmony_ci
86e41f4b71Sopenharmony_ci```html
87e41f4b71Sopenharmony_ci<!-- xxx.hml -->
88e41f4b71Sopenharmony_ci<div>
89e41f4b71Sopenharmony_ci  <canvas ref="canvasId" style="width: 200px; height: 150px; background-color: #ffff00;"></canvas>
90e41f4b71Sopenharmony_ci</div>
91e41f4b71Sopenharmony_ci```
92e41f4b71Sopenharmony_ci
93e41f4b71Sopenharmony_ci```js
94e41f4b71Sopenharmony_ci//xxx.js
95e41f4b71Sopenharmony_ciexport default {
96e41f4b71Sopenharmony_ci  onShow() {
97e41f4b71Sopenharmony_ci    var canvas = this.$refs.canvasId.getContext('2d');
98e41f4b71Sopenharmony_ci    var offscreen = new OffscreenCanvas(500,500);
99e41f4b71Sopenharmony_ci    var offscreenCanvasCtx = offscreen.getContext("2d");
100e41f4b71Sopenharmony_ci
101e41f4b71Sopenharmony_ci    // ... some drawing for the canvas using the offscreenCanvasCtx ...
102e41f4b71Sopenharmony_ci
103e41f4b71Sopenharmony_ci    var dataURL = offscreen.toDataURL();
104e41f4b71Sopenharmony_ci    console.log(dataURL); //data:image/png;base64,xxxxxx
105e41f4b71Sopenharmony_ci
106e41f4b71Sopenharmony_ci    var bitmap = offscreen.transferToImageBitmap();
107e41f4b71Sopenharmony_ci    canvas.transferFromImageBitmap(bitmap);
108e41f4b71Sopenharmony_ci  }
109e41f4b71Sopenharmony_ci}
110e41f4b71Sopenharmony_ci```
111