ImageCapture.takePhoto()

ImageCapture 인터페이스의 takePhoto() 메서드는 MediaStreamTrack을 제공하는 비디오 캡처 장치를 사용해 단일 노출 촬영을 하고, 그 데이터를 담은 Blob으로 이행하는 Promise를 반환합니다.

구문

js
const blobPromise = imageCaptureObj.takePhoto([photoSettings]);

매개변수

photoSettings Optional

사진을 촬영할 때 사용할 옵션을 나타내는 객체. 가능한 옵션은 다음과 같습니다.* fillLightMode: 캡처 장치의 플래시 설정. "auto", "off", "flash" 중 하나를 사용할 수 있습니다.

  • imageHeight: 원하는 이미지 크기의 높이를 나타내는 정숫값. 일련의 정해진 크기만 지원하는 경우, 사용자 에이전트는 이 값과 제일 가까운 높이를 사용합니다.
  • imageWidth: 원하는 이미지 크기의 너비를 나타내는 정숫값. 일련의 정해진 크기만 지원하는 경우, 사용자 에이전트는 이 값과 제일 가까운 너비를 사용합니다.
  • redEyeReduction: 적목 현상 감소 기능이 존재하는 경우, 사용할지 나타내는 불리언 값.

반환 값

Blob으로 이행하는 Promise.

예제

다음 코드는 Simple Image Capture 데모에서 가져온 것으로, takePhoto()가 반환한 PromiseBlob을 사용해 <img> 요소에 할당하는 방법을 보입니다. 코드를 짧게 유지하기 위해 ImageCapture 객체의 초기화 과정은 생략했습니다.

js
var takePhotoButton = document.querySelector("button#takePhoto");
var canvas = document.querySelector("canvas");

takePhotoButton.onclick = takePhoto;

function takePhoto() {
  imageCapture
    .takePhoto()
    .then(function (blob) {
      console.log("Took photo:", blob);
      img.classList.remove("hidden");
      img.src = URL.createObjectURL(blob);
    })
    .catch(function (error) {
      console.log("takePhoto() error: ", error);
    });
}

명세

Specification
MediaStream Image Capture
# dom-imagecapture-takephoto

브라우저 호환성

BCD tables only load in the browser