Spec-Zone.ru › Web APIs

ImageDecoder: метод decode()

Ограниченная доступность

Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.

Примечание: Эта функция доступна в посвященных веб-воркерах.

Метод decode() интерфейса ImageDecoder добавляет в очередь управляющее сообщение для декодирования кадра изображения.

Синтаксис

decode()
decode(options)

Параметры

options Необязательно

Объект, содержащий следующие члены:

frameIndex Необязательно

Целое число, представляющее индекс кадра для декодирования. По умолчанию 0 (первый кадр).

completeFramesOnly Необязательно

Значение типа boolean по умолчанию true. Когда false указывает, что для прогрессивных изображений декодер может выдать изображение с уменьшенной детализацией. При false, промис, возвращаемый decode(), разрешится ровно один раз для каждого нового уровня детализации.

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

Промис promise, который разрешается объектом, содержащим следующие члены:

image

VideoFrame, содержащий декодированное изображение.

complete

Значение типа boolean, если true указывает, что image содержит окончательный вывод с полной детализацией.

Исключения

Если произошла ошибка, промис разрешится следующим исключением:

InvalidStateError DOMException

Возвращается, если выполняются следующие условия:

  • close имеет значение true, что означает, что метод close() уже был вызван.
  • Запрашиваемого кадра не существует.

Примеры

Синхронное декодирование завершенного кадра изображения

В следующем примере декодируется второй кадр (с индексом 1) и выводится полученный VideoFrame в консоль.

let result = await imageDecoder.decode({ frameIndex: 1 });
console.log(result.image);

Частичное декодирование прогрессивного кадра изображения

В следующем примере декодируется первый кадр до тех пор, пока он не станет полным:

let complete = false;
while (!complete) {
  // The promise returned by `decode()` will only resolve when a new
  // level of detail is available or the frame is complete. I.e.,
  // calling `decode()` in a loop like this is won't needlessly spin.
  let result = await imageDecode.decode({ completeFramesOnly: false });

  // Do something with `result.image`.

  complete = result.complete;
}

Спецификации

Спецификация
WebCodecs
# dom-imagedecoder-decode

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

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
decode 94 94 133 80 Нет 94 133 66 Нет 17.0 94

© 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/ImageDecoder/decode

Spec-Zone.ru

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