js-components-canvas-offscreencanvas.md 3.2 KB
Newer Older
Z
zengyawen 已提交
1 2
# OffscreenCanvas对象

H
geshi  
HelloCrease 已提交
3 4
>  **说明:**
>  从API version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
Z
zengyawen 已提交
5 6 7 8


可以离屏渲染的canvas对象。

Z
zengyawen 已提交
9 10 11

## 属性

H
geshi  
HelloCrease 已提交
12 13 14
| 属性     | 类型     | 描述                          |
| ------ | ------ | --------------------------- |
| width  | number | offscreen canvas对象的宽度。 |
Z
zengyawen 已提交
15 16 17 18 19 20 21 22 23
| height | number | offscreen canvas对象的高度。 |


## 方法


### getContext

getContext(type: string, options?: CanvasRenderingContext2DSettings): OffscreenCanvasRenderingContext2D
Z
update  
zengyawen 已提交
24 25 26

获取offscreen canvas绘图上下文,返回值为2D绘制对象。

H
geshi  
HelloCrease 已提交
27
**参数:** 
28

H
geshi  
HelloCrease 已提交
29 30 31 32
| 参数名       | 参数类型                                     | 必填   | 描述                     |
| --------- | ---------------------------------------- | ---- | ---------------------- |
| contextId | string                                   | 是    | 仅支持 '2d'。         |
| options   | [CanvasRenderingContext2DSettings](../arkui-js/js-offscreencanvasrenderingcontext2d.md) | 否    | 用于在离屏画布上进行绘制矩形、文本、图片等。 |
Z
zengyawen 已提交
33

H
geshi  
HelloCrease 已提交
34
**返回值:**  
35

H
geshi  
HelloCrease 已提交
36 37 38
| 类型                                       | 说明                          |
| ---------------------------------------- | --------------------------- |
| [OffscreenCanvasRenderingContext2D](../arkui-js/js-offscreencanvasrenderingcontext2d.md) | 2D绘制对象,用于在画布组件上绘制矩形、文本、图片等。 |
Z
zengyawen 已提交
39 40 41 42 43


### toDataURL

toDataURL(type?: string, quality?:number):
Z
update  
zengyawen 已提交
44 45 46

生成一个包含图片展示的URL。

47 48
**参数:** 

H
geshi  
HelloCrease 已提交
49 50 51 52
| 参数名     | 参数类型   | 必填   | 描述                                       |
| ------- | ------ | ---- | ---------------------------------------- |
| type    | string | 否    | 可选参数,用于指定图像格式,默认格式为image/png。            |
| quality | number | 否    | 在指定图片格式为image/jpeg或image/webp的情况下,可以从0到1的区间内选择图片的质量。如果超出取值范围,将会使用默认值0.92。 |
Z
update  
zengyawen 已提交
53

H
geshi  
HelloCrease 已提交
54
**返回值:**  
55

H
geshi  
HelloCrease 已提交
56 57 58
| 类型     | 说明        |
| ------ | --------- |
| string | 图像的URL地址。 |
Z
update  
zengyawen 已提交
59 60


Z
zengyawen 已提交
61
### transferToImageBitmap
Z
update  
zengyawen 已提交
62

Z
zengyawen 已提交
63
transferToImageBitmap(): ImageBitmap
Z
zengyawen 已提交
64

Z
zengyawen 已提交
65 66
在离屏画布最近渲染的图像上创建一个ImageBitmap对象。

H
geshi  
HelloCrease 已提交
67
**返回值:**  
68

H
geshi  
HelloCrease 已提交
69 70 71
| 类型                                       | 说明              |
| ---------------------------------------- | --------------- |
| [ImageBitmap](../arkui-js/js-components-canvas-imagebitmap.md) | 存储离屏画布上渲染的像素数据。 |
Z
zengyawen 已提交
72 73 74


## 示例
Z
zengyawen 已提交
75

H
geshi  
HelloCrease 已提交
76
```html
Z
zengyawen 已提交
77 78 79 80 81
<!-- xxx.hml -->
<div>
  <canvas ref="canvasId" style="width: 200px; height: 150px; background-color: #ffff00;"></canvas>
</div>
```
Z
zengyawen 已提交
82

H
geshi  
HelloCrease 已提交
83
```js
Z
zengyawen 已提交
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
//xxx.js
export default {
  onShow() {
    var canvas = this.$refs.canvasId.getContext('2d');
    var offscreen = new OffscreenCanvas(500,500);
    var offscreenCanvasCtx = offscreen.getContext("2d");

    // ... some drawing for the canvas using the offscreenCanvasCtx ...

    var dataURL = offscreen.toDataURL();
    console.log(dataURL); //data:image/png;base64,xxxxxx

    var bitmap = offscreen.transferToImageBitmap();
    canvas.transferFromImageBitmap(bitmap);
  }
}
Z
zengyawen 已提交
100
```
H
geshi  
HelloCrease 已提交
101