HTTP/2 200
content-type: text/html
x-guploader-uploadid: AAwnv3Iu8fudkr2yCzwOPACYYuScQAB-ZZADgsBOJahIEKGXlH2AU_Muu5Tb5ARrNG7Bn2xXK0N1wOM
cache-control: public, max-age=3600
expires: Tue, 14 Oct 2025 22:52:09 GMT
last-modified: Tue, 14 Oct 2025 01:06:14 GMT
etag: W/"75ffd08af566d21d252386ef7e85651e"
x-goog-generation: 1760403974895448
x-goog-metageneration: 1
x-goog-stored-content-encoding: identity
x-goog-stored-content-length: 133776
x-goog-meta-goog-reserved-file-mtime: 1760402419
x-goog-hash: crc32c=wEMlGw==, md5=df/QivVm0h0lI4bvfoVlHg==
x-goog-storage-class: STANDARD
accept-ranges: none
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
alt-svc: clear
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
strict-transport-security: max-age=63072000
content-security-policy: default-src 'self'; script-src 'report-sample' 'self' 'wasm-unsafe-eval' https://www.google-analytics.com/analytics.js https://www.googletagmanager.com/gtag/js assets.codepen.io production-assets.codepen.io https://js.stripe.com 'sha256-XNBp89FG76amD8BqrJzyflxOF9PaWPqPqvJfKZPCv7M=' 'sha256-YCNoU9DNiinACbd8n6UPyB/8vj0kXvhkOni9/06SuYw=' 'sha256-PZjP7OR6mBEtnvXIZfCZ5PuOlxoDF1LDZL8aj8c42rw='; script-src-elem 'report-sample' 'self' 'wasm-unsafe-eval' https://www.google-analytics.com/analytics.js https://www.googletagmanager.com/gtag/js assets.codepen.io production-assets.codepen.io https://js.stripe.com 'sha256-XNBp89FG76amD8BqrJzyflxOF9PaWPqPqvJfKZPCv7M=' 'sha256-YCNoU9DNiinACbd8n6UPyB/8vj0kXvhkOni9/06SuYw=' 'sha256-PZjP7OR6mBEtnvXIZfCZ5PuOlxoDF1LDZL8aj8c42rw='; style-src 'report-sample' 'self' 'unsafe-inline'; object-src 'none'; base-uri 'self'; connect-src 'self' developer.allizom.org bcd.developer.allizom.org bcd.developer.mozilla.org updates.developer.allizom.org updates.developer.mozilla.org https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com https://incoming.telemetry.mozilla.org https://observatory-api.mdn.allizom.net https://observatory-api.mdn.mozilla.net https://api.github.com/search/issues stats.g.doubleclick.net https://api.stripe.com; font-src 'self'; frame-src 'self' interactive-examples.mdn.mozilla.net interactive-examples.mdn.allizom.net mdn.github.io live-samples.mdn.mozilla.net live-samples.mdn.allizom.net *.mdnplay.dev *.mdnyalp.dev *.play.test.mdn.allizom.net https://v2.scrimba.com https://scrimba.com jsfiddle.net www.youtube-nocookie.com codepen.io survey.alchemer.com https://js.stripe.com; img-src 'self' data: *.githubusercontent.com *.googleusercontent.com *.gravatar.com mozillausercontent.com firefoxusercontent.com profile.stage.mozaws.net profile.accounts.firefox.com developer.mozilla.org mdn.dev interactive-examples.mdn.mozilla.net interactive-examples.mdn.allizom.net wikipedia.org upload.wikimedia.org https://mdn.github.io/shared-assets/ https://mdn.dev/ https://*.google-analytics.com https://*.googletagmanager.com www.gstatic.com; manifest-src 'self'; media-src 'self' archive.org videos.cdn.mozilla.net https://mdn.github.io/shared-assets/; child-src 'self'; worker-src 'self';
x-frame-options: DENY
origin-trial: AxVILwizhbMjxFeHOn1P3R8niO1RJY/smaK4B4d1rLzc1gTaxtXMSaTi+FoigYgCw40uFRDwFcEAeqDR+vVLOW4AAABfeyJvcmlnaW4iOiJodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZyIsImZlYXR1cmUiOiJQcml2YXRlQXR0cmlidXRpb25WMiIsImV4cGlyeSI6MTc0MjA3OTYwMH0=
x-cloud-trace-context: cd3e0974d979f4053f024504263de41b
date: Tue, 14 Oct 2025 21:52:10 GMT
server: Google Frontend
via: 1.1 google
vary: Accept-Encoding
content-encoding: gzip
x-cache: miss
ImageCapture: takePhoto() method - Web APIs | MDN
takePhoto()
takePhoto(photoSettings)
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.
A Promise
that resolves with a Blob
.
InvalidStateError
DOMException
Thrown if readyState
property of the MediaStreamTrack
passing in the constructor is not live
.
UnknownError
DOMException
Thrown if the operation can't complete for any reason.
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);
});
}