ImageCapture.getPhotoSettings()
The getPhotoSettings()
method of
the ImageCapture
interface returns a Promise
that
resolves with a PhotoSettings
object containing the current photo
configuration settings.
Syntax
const settingsPromise = imageCapture.getPhotoSettings()
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.
Example
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"]');
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 |
---|
MediaStream Image Capture # dom-imagecapture-getphotosettings |
Browser compatibility
BCD tables only load in the browser