blob: bec638c42ec5d79e46a9a6bb6c91b4b2ab470cba (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
---
title: ImageCapture.getPhotoCapabilities()
slug: Web/API/ImageCapture/getPhotoCapabilities
tags:
- API
- Experimental
- Image
- Image Capture
- ImageCapture
- Media
- MediaStream Image Capture API
- Method
- Reference
- getPhotoCapabilities
browser-compat: api.ImageCapture.getPhotoCapabilities
translation_of: Web/API/ImageCapture/getPhotoCapabilities
---
{{APIRef("MediaStream Image")}}
{{domxref("ImageCapture")}} 인터페이스의 **`getPhotoCapabilities()`** 메서드는 사용 가능한 설정 옵션을 담은 {{domxref("PhotoCapabilities")}} 객체로 이행하는 {{jsxref("Promise")}}를 반환합니다.
## 구문
```js
const capabilitiesPromise = imageCaptureObj.getPhotoCapabilities()
```
### 반환 값
다음 속성을 포함하는 객체로 이행하는 {{jsxref("Promise")}}.
- `redEyeReduction`
- : 장치의 적목 현상 감소 기능 적용 여부를 나타내는 `"never"`, `"always"`, `"controllable"` 중 하나를 반환합니다.
- `imageHeight`
- : {{glossary("user agent", "사용자 에이전트")}}가 지원하는 이미지 높이의 범위를 나타내는 객체를 반환합니다.
- `imageWidth`
- : {{glossary("user agent", "사용자 에이전트")}}가 지원하는 이미지 너비의 범위를 나타내는 객체를 반환합니다.
- `fillLightMode`
- : 사용 가능한 카메라 플래시 옵션을 담은 배열을 반환합니다. 가능한 값은 `auto`, `off`, `flash`입니다.
## 예제
다음 예제는 [Chrome의 Image Capture / Photo Resolution Sample](https://googlechrome.github.io/samples/image-capture/photo-resolution.html)에서 가져온 코드로, `getPhotoCapabilities()`를 사용해 범위 입력 칸의 크기를 수정합니다. 또한 장치의 {{domxref("MediaStream")}}에서 가져온 {{domxref("MediaStreamTrack")}} 객체를 사용해 {{domxref("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));
```
## 명세
{{Specifications}}
## 브라우저 호환성
{{Compat}}
|