The PhotoCapabilities
interface of the the MediaStream Image Capture API provides available configuration options for an attached photographic device. A PhotoCapabilities
object is retrieved by calling ImageCapture.getPhotoCapabilities()
.
Properties
PhotoCapabilities.redEyeReduction
Read only- Returns one of
"never"
,"always"
, or"controllable"
. The"controllable"
value means the device's red-eye reduction is controllable by the user. PhotoCapabilities.imageHeight
Read only- Returns a
MediaSettingsRange
object indicating the image height range supported by the user agent. PhotoCapabilities.imageWidth
Read only- Returns a
MediaSettingsRange
object indicating the image width range supported by the user agent. PhotoCapabilities.fillLightMode
Read only- Returns an array of available fill light options. Options may include
auto
,off
, orflash
.
Example
The following example, extracted from Chrome's Image Capture / Photo Resolution Sample, uses the results from getPhotoCapabilities()
to modify the size of an input range. This example also shows how the ImageCapture
object is created using a MediaStreamTrack
retrieved from a device's MediaStream
.
const input = document.querySelector('input[type="range"]');
var imageCapture;
navigator.mediaDevices.getUserMedia({video: true})
.then(mediaStream => {
document.querySelector('video').srcObject = mediaStream;
const track = mediaStream.getVideoTracks()[0];
imageCapture = new ImageCapture(track);
return imageCapture.getPhotoCapabilities();
})
.then(photoCapabilities => {
const settings = imageCapture.track.getSettings();
input.min = photoCapabilities.imageWidth.min;
input.max = photoCapabilities.imageWidth.max;
input.step = photoCapabilities.imageWidth.step;
return imageCapture.getPhotoSettings();
})
.then(photoSettings => {
input.value = photoSettings.imageWidth;
})
.catch(error => console.log('Argh!', error.name || error));
Specifications
Specification | Status | Comment |
MediaStream Image CaptureThe definition of 'PhotoCapabilities' in that specification. | Working Draft | Initial definition. |
Browser Compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Chrome
Full support 59 |
Edge
Full support ≤79 |
Firefox
? |
IE
No support No |
Opera
Full support 46 |
Safari
? |
WebView Android
Full support 59 |
Chrome Android
Full support 59 |
Firefox Android
? |
Opera Android
Full support 43 |
Safari iOS
? |
Samsung Internet Android
Full support 7.0 |
Chrome
Full support 59 |
Edge
Full support ≤79 |
Firefox
? |
IE
No support No |
Opera
Full support 46 |
Safari
? |
WebView Android
Full support 59 |
Chrome Android
Full support 59 |
Firefox Android
? |
Opera Android
Full support 43 |
Safari iOS
? |
Samsung Internet Android
Full support 7.0 | |
Chrome
Full support 59 |
Edge
Full support ≤79 |
Firefox
? |
IE
No support No |
Opera
Full support 46 |
Safari
? |
WebView Android
Full support 59 |
Chrome Android
Full support 59 |
Firefox Android
? |
Opera Android
Full support 43 |
Safari iOS
? |
Samsung Internet Android
Full support 7.0 | |
Chrome
Full support 59 |
Edge
Full support ≤79 |
Firefox
? |
IE
No support No |
Opera
Full support 46 |
Safari
? |
WebView Android
Full support 59 |
Chrome Android
Full support 59 |
Firefox Android
? |
Opera Android
Full support 43 |
Safari iOS
? |
Samsung Internet Android
Full support 7.0 | |
Chrome
Full support 59 |
Edge
Full support ≤79 |
Firefox
? |
IE
No support No |
Opera
Full support 46 |
Safari
? |
WebView Android
Full support 59 |
Chrome Android
Full support 59 |
Firefox Android
? |
Opera Android
Full support 43 |
Safari iOS
? |
Samsung Internet Android
Full support 7.0 |
Legend
- Full support
- Full support
- No support
- No support
- Compatibility unknown
- Compatibility unknown
- Experimental. Expect behavior to change in the future.'
- Experimental. Expect behavior to change in the future.
PhotoCapabilities by Mozilla Contributors is licensed under CC-BY-SA 2.5.