The getPhotoCapabilities() method of the ImageCapture interface returns a Promise that resolves with a PhotoCapabilities object containing the ranges of available configuration options.


const capabilitiesPromise = imageCaptureObj.getPhotoCapabilities()

Return value

A Promise that resolves with a PhotoCapabilities object.


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));


MediaStream Image Capture
# dom-imagecapture-getphotocapabilities

Browser compatibility

BCD tables only load in the browser