ImageCapture: takePhoto() method
The takePhoto()
method of the ImageCapture
interface takes a single exposure using the video capture device sourcing a MediaStreamTrack
and returns a Promise
that resolves with a Blob
containing the data.
Syntax
takePhoto()
takePhoto(photoSettings)
Parameters
photoSettings
Optional
-
An object that sets options for the photo to be taken. The available options are:
-
fillLightMode
-
The flash setting of the capture device, one of "auto"
, "off"
, or "flash"
.
-
imageHeight
-
The desired image height as an integer. The user agent selects the closest height value to this setting if it only supports discrete heights.
-
imageWidth
-
The desired image width as an integer. The user agent selects the closest width value to this setting if it only supports discrete widths.
-
redEyeReduction
-
A boolean indicating whether the red-eye reduction should be used if it is available.
Return value
A Promise
that resolves with a Blob
.
Examples
This example is extracted from this Simple Image Capture demo. It shows how to use the Promise
returned by takePhoto()
to copy the returned Blob
to an <img>
element. For simplicity it does not show how to instantiate the ImageCapture
object.
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);
});
}
Specifications
Browser compatibility
|
Desktop |
Mobile |
|
Chrome |
Edge |
Firefox |
Internet Explorer |
Opera |
Safari |
WebView Android |
Chrome Android |
Firefox for Android |
Opera Android |
Safari on IOS |
Samsung Internet |
takePhoto |
60
59–60photoSettings parameter not supported.
|
79 |
35 |
No |
47
46–47photoSettings parameter not supported.
|
No |
60
59–60photoSettings parameter not supported.
|
60
59–60photoSettings parameter not supported.
|
No |
44
43–44photoSettings parameter not supported.
|
No |
8.0
7.0–8.0photoSettings parameter not supported.
|