OffscreenCanvas: transferToImageBitmap() 方法
**注意:** 此功能在 Web Workers 中可用。
**OffscreenCanvas.transferToImageBitmap()
** 方法从 OffscreenCanvas
最近渲染的图像创建 ImageBitmap
对象。OffscreenCanvas
为其后续渲染分配一个新的图像。
语法
transferToImageBitmap()
参数
无。
返回值
一个新分配的 ImageBitmap
。
此 ImageBitmap
引用了可能很大的图形资源,为了确保您的 Web 应用程序保持健壮,重要的是避免在任何时候分配太多此类资源。因此,必须确保 ImageBitmap
被使用或关闭。
如 OffscreenCanvas
示例中所述,将此 ImageBitmap
传递给 ImageBitmapRenderingContext.transferFromImageBitmap()
将使用 ImageBitmap
对象;它不再引用底层图形资源,也不能传递给任何其他 Web API。
如果您的目标是将 ImageBitmap
传递给不使用它的其他 Web API(例如,CanvasRenderingContext2D.drawImage()
),则在完成后,应通过调用 ImageBitmap.close()
来关闭它。不要简单地丢弃对 ImageBitmap
的 JavaScript 引用;这样做会使它的图形资源保持活动状态,直到下次垃圾收集器运行。
如果您调用 transferToImageBitmap()
并且不打算将其传递给 ImageBitmapRenderingContext.transferFromImageBitmap()
,请考虑是否需要调用 transferToImageBitmap()
。许多接受 ImageBitmap
的 Web API 也接受 OffscreenCanvas
作为参数。
示例
const offscreen = new OffscreenCanvas(256, 256);
const gl = offscreen.getContext("webgl");
// Perform some drawing using the gl context
offscreen.transferToImageBitmap();
// ImageBitmap { width: 256, height: 256 }
// Either:
// Pass this `ImageBitmap` to `ImageBitmapRenderingContext.transferFromImageBitmap`
// or:
// Use the `ImageBitmap` with other web APIs, and call `ImageBitmap.close()`!
规范
规范 |
---|
HTML 标准 # dom-offscreencanvas-transfertoimagebitmap-dev |
浏览器兼容性
BCD 表格仅在浏览器中加载