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