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

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
getPhotoSettings

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
In development. Supported in a pre-release version.
In development. Supported in a pre-release version.
No support
No support