ImageCapture: метод takePhoto()
Экспериментально: Это экспериментальная технология
Перед использованием в продакшене внимательно ознакомьтесь с таблицей совместимости браузеров.
Метод takePhoto() интерфейса ImageCapture делает однократное экспонирование с помощью устройства видеозахвата, используя MediaStreamTrack, и возвращает Promise, который разрешается с Blob, содержащим данные.
Синтаксис
takePhoto() takePhoto(photoSettings)
Параметры
photoSettingsНеобязательно-
Объект, задающий параметры для снимка. Доступные параметры:
fillLightMode-
Настройка вспышки устройства захвата, одно из значений
"auto","off", или"flash". imageHeight-
Желаемая высота изображения в виде целого числа. Пользовательский агент выбирает ближайшее значение высоты к этому параметру, если поддерживаются только дискретные значения.
imageWidth-
Желаемая ширина изображения в виде целого числа. Пользовательский агент выбирает ближайшее значение ширины к этому параметру, если поддерживаются только дискретные значения.
redEyeReduction-
Булево значение, указывающее, следует ли использовать функцию уменьшения эффекта красных глаз, если она доступна.
Возвращаемое значение
Исключения
-
InvalidStateErrorDOMException -
Выбрасывается, если свойство
readyStateобъектаMediaStreamTrack, переданного в конструктор, не имеет значенияlive. -
UnknownErrorDOMException -
Выбрасывается, если операция не может завершиться по любой причине.
Примеры
Этот пример взят из демонстрации 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);
});
}
Спецификации
Совместимость браузеров
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
takePhoto |
6059–60photoSettings параметр не поддерживается. |
79 | 35 | 4746–47photoSettings параметр не поддерживается. |
17.4 | 6059–60photoSettings параметр не поддерживается. |
Нет | 4443–44photoSettings параметр не поддерживается. |
17.4 | 8.07.0–8.0photoSettings параметр не поддерживается. |
6059–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