ImageCapture: getPhotoCapabilities() メソッド

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

getPhotoCapabilities()ImageCapture インターフェイスのメソッドで、利用できる構成オプションの範囲を格納したオブジェクトを解決するプロミス (Promise) を返します。

構文

js
getPhotoCapabilities()

引数

なし。

返値

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

redEyeReduction

"never""always""controllable" のいずれかを返します。 "controllable" の値は、端末の赤目軽減がユーザーによって制御できるということを意味しています。

imageHeight

ユーザーエージェントが対応している画像の高さの範囲を示すオブジェクトを返します。

imageWidth

ユーザーエージェントが対応している画像の幅の範囲を示すオブジェクトを返します。

fillLightMode

利用できるフィルライトオプションの配列を返します。オプションには autooffflash があります。

例外

InvalidStateError DOMException

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

OperationError DOMException

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

次の例は Chrome の画像キャプチャ / 写真解像度サンプルから抜粋したもので、 getPhotoCapabilities() の結果を使用して入力範囲のサイズを変更しています。この例では、機器の 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-getphotocapabilities

ブラウザーの互換性

BCD tables only load in the browser