Spec-Zone.ru › Web APIs

ImageCapture: метод takePhoto()

Экспериментально: Это экспериментальная технология
Перед использованием в продакшене внимательно ознакомьтесь с таблицей совместимости браузеров.

Метод takePhoto() интерфейса ImageCapture делает однократное экспонирование с помощью устройства видеозахвата, используя MediaStreamTrack, и возвращает Promise, который разрешается с Blob, содержащим данные.

Синтаксис

takePhoto()
takePhoto(photoSettings)

Параметры

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

Объект, задающий параметры для снимка. Доступные параметры:

fillLightMode

Настройка вспышки устройства захвата, одно из значений "auto", "off", или "flash".

imageHeight

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

imageWidth

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

redEyeReduction

Булево значение, указывающее, следует ли использовать функцию уменьшения эффекта красных глаз, если она доступна.

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

A Promise, который разрешается с Blob.

Исключения

InvalidStateError DOMException

Выбрасывается, если свойство readyState объекта MediaStreamTrack, переданного в конструктор, не имеет значения live.

UnknownError DOMException

Выбрасывается, если операция не может завершиться по любой причине.

Примеры

Этот пример взят из демонстрации Simple Image Capture. Он демонстрирует, как использовать Promise, возвращаемый takePhoto(), для копирования возвращаемого Blob в элемент <img>. Для простоты не показано, как создать объект ImageCapture.

let takePhotoButton = document.querySelector("button#takePhoto");
let canvas = document.querySelector("canvas");

takePhotoButton.onclick = takePhoto;

function takePhoto() {
  imageCapture
    .takePhoto()
    .then((blob) => {
      console.log("Took photo:", blob);
      img.classList.remove("hidden");
      img.src = URL.createObjectURL(blob);
    })
    .catch((error) => {
      console.error("takePhoto() error: ", error);
    });
}

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

Спецификация
MediaStream Image Capture
# dom-imagecapture-takephoto

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
takePhoto 60
59–60photoSettings параметр не поддерживается.
79 35 47
46–47photoSettings параметр не поддерживается.
17.4 60
59–60photoSettings параметр не поддерживается.
Нет 44
43–44photoSettings параметр не поддерживается.
17.4 8.0
7.0–8.0photoSettings параметр не поддерживается.
60
59–60photoSettings параметр не поддерживается.

© 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/ImageCapture/takePhoto

Spec-Zone.ru

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