ImageCapture.getPhotoSettings()

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The getPhotoSettings() method of the ImageCapture interface returns a Promise that resolves with a PhotoSettings object containing the current photo configuration settings.

Syntax

getPhotoSettings()

Parameters

None.

Return value

A Promise that resolves with a PhotoSettings object containing the following properties:

  • fillLightMode: The flash setting of the capture device, one of "auto", "off", or "on".
  • imageHeight: The desired image height as an integer. The user agent selects the closest width 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.

Examples

The following example, extracted from Chrome's Image Capture / Photo Resolution Sample, uses the results from getPhotoSettings() 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-getphotosettings

Browser compatibility

BCD tables only load in the browser