ImageCapture: getPhotoSettings() メソッド

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

getPhotoSettings()ImageCapture インターフェイスのメソッドで、現在の写真設定値を格納したオブジェクトで解決される Promise を返します。

構文

js
getPhotoSettings()

引数

なし。

返値

以下のプロパティを持つオブジェクトに解決するプロミス (Promise) です。

fillLightMode

このキャプチャ機器のフラッシュ設定です。 autooffflash のいずれかです。

imageHeight

画像の希望の高さを整数で指定します。ブラウザーが離散的な高さしか対応していない場合は、この設定に最も近い高さの値を選択します。

imageWidth

画像の希望の幅を整数で指定します。ブラウザーが離散的な幅しか対応していない場合は、この設定に最も近い幅の値を選択します。

redEyeReduction

論理値で、赤目軽減が利用できる場合に使用するかどうかを示します。

例外

InvalidStateError DOMException

コンストラクターで渡した MediaStreamTrackreadyState プロパティが live でない場合に発生します。

OperationError DOMException

何らかの理由で処理を完了できない場合に発生します。

次の例は Chrome の画像キャプチャ / 写真解像度サンプルから抜粋したもので、 getPhotoSettings() の結果を使用して入力範囲のサイズを変更しています。この例では、端末の MediaStream から取得した MediaStreamTrack を使用して ImageCapture オブジェクトを作成する様子も示しています。

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

仕様書

Specification
MediaStream Image Capture
# dom-imagecapture-getphotosettings

ブラウザーの互換性

BCD tables only load in the browser