ImageCapture.getPhotoCapabilities()

ImageCapture 인터페이스의 getPhotoCapabilities() 메서드는 사용 가능한 설정 옵션을 담은 PhotoCapabilities 객체로 이행하는 Promise를 반환합니다.

구문

js
const capabilitiesPromise = imageCaptureObj.getPhotoCapabilities();

반환 값

다음 속성을 포함하는 객체로 이행하는 Promise.

redEyeReduction

장치의 적목 현상 감소 기능 적용 여부를 나타내는 "never", "always", "controllable" 중 하나를 반환합니다.

imageHeight

사용자 에이전트가 지원하는 이미지 높이의 범위를 나타내는 객체를 반환합니다.

imageWidth

사용자 에이전트가 지원하는 이미지 너비의 범위를 나타내는 객체를 반환합니다.

fillLightMode

사용 가능한 카메라 플래시 옵션을 담은 배열을 반환합니다. 가능한 값은 auto, off, flash입니다.

예제

다음 예제는 Chrome의 Image Capture / Photo Resolution Sample에서 가져온 코드로, getPhotoCapabilities()를 사용해 범위 입력 칸의 크기를 수정합니다. 또한 장치의 MediaStream에서 가져온 MediaStreamTrack 객체를 사용해 ImageCapture 객체를 생성하는 부분도 포함하고 있습니다.

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

명세

Specification
MediaStream Image Capture
# dom-imagecapture-getphotocapabilities

브라우저 호환성

BCD tables only load in the browser