ImageCapture: getPhotoCapabilities() method
The getPhotoCapabilities()
method of the ImageCapture interface returns a Promise
that resolves with an object containing the ranges of
available configuration options.
Syntax
getPhotoCapabilities()
Parameters
None.
Return value
A Promise that resolves with an object containing the following properties:
redEyeReduction- 
Returns one of
"never","always", or"controllable". The"controllable"value means the device's red-eye reduction is controllable by the user. imageHeight- 
Returns an object indicating the image height range supported by the user agent.
 imageWidth- 
Returns an object indicating the image width range supported by the user agent.
 fillLightMode- 
Returns an array of available fill light options. Options include
auto,off, orflash. 
Exceptions
InvalidStateErrorDOMException- 
Thrown if
readyStateproperty of theMediaStreamTrackpassing in the constructor is notlive. OperationErrorDOMException- 
Thrown if the operation can't complete for any reason.
 
Examples
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"]');
let 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.error("Argh!", error.name || error));
Specifications
| Specification | 
|---|
| MediaStream Image Capture> # dom-imagecapture-getphotocapabilities>  | 
            
Browser compatibility
Loading…