Spec-Zone.ru › Web APIs

OffscreenCanvas: метод transferToImageBitmap()

Базовая версия 2023
Новое доступное свойство

С марта 2023 года данная функция работает на последних версиях браузеров и устройств. Возможно, эта функция не будет работать на более старых устройствах или браузерах.

  • Узнать больше
  • Посмотреть полную совместимость
  • Отправить отзыв

Примечание: Данная функция доступна в Web Workers.

Метод OffscreenCanvas.transferToImageBitmap() создаёт объект ImageBitmap на основе самого последнего рендеринга изображения OffscreenCanvas. Метод OffscreenCanvas выделяет новую область памяти для последующего рендеринга.

Синтаксис

transferToImageBitmap()

Параметры

Нет.

Возвращаемое значение

Новенехонький объект ImageBitmap.

Этот ImageBitmap ссылается на потенциально большой ресурс графики, и для обеспечения стабильности вашей веб-приложения важно избегать выделения слишком большого количества таких ресурсов в любой момент. По этой причине важно гарантировать, что ImageBitmap либо будет использован, либо закрыт.

Как описано в примерах OffscreenCanvas, передача этого ImageBitmap в ImageBitmapRenderingContext.transferFromImageBitmap() использует объект ImageBitmap; он больше не ссылается на базовый ресурс графики и не может быть передан ни в какие другие веб-API.

Если вашей целью является передача ImageBitmap в другие веб-API, которые не потребляют его — например, CanvasRenderingContext2D.drawImage() — то вы должны закрыть его, когда закончите с ним, вызвав ImageBitmap.close(). Не просто отпускайте JavaScript-ссылку на ImageBitmap; это сохранит его графический ресурс живым до следующего выполнения сборщика мусора.

Если вы вызываете transferToImageBitmap() и не собираетесь передавать его в ImageBitmapRenderingContext.transferFromImageBitmap(), задумайтесь, нужно ли вообще вызывать transferToImageBitmap(). Многие веб-API, которые принимают ImageBitmap, также принимают OffscreenCanvas в качестве аргумента.

Исключения

InvalidStateError DOMException

Выбрасывается, если:

  • холст был передан в другую область контекста, например, в рабочий процесс
  • режим контекста холста не был задан вызовом OffscreenCanvas.getContext().

Примеры

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

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
transferToImageBitmap 69 79 105 56 16.4 69 105 48 16.4 10.0 69

См. также

  • Интерфейс, определяющий этот метод, OffscreenCanvas
  • ImageBitmapRenderingContext.transferFromImageBitmap

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas/transferToImageBitmap

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API