blob: ac7fd39f3def8e311a378635130e4138768ea7ec (
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
80
81
82
|
---
title: ImageCapture.takePhoto()
slug: Web/API/ImageCapture/takePhoto
tags:
- API
- Experimental
- ImageCapture
- MediaStream Image Capture
- Method
- Reference
translation_of: Web/API/ImageCapture/takePhoto
---
<div>{{APIRef("MediaStream Image")}}</div>
<p><span class="seoSummary">{{domxref("ImageCapture")}} 인터페이스의<strong> <code>takePhoto()</code></strong> 메서드는 {{domxref("MediaStreamTrack")}}을 제공하는 비디오 캡처 장치를 사용해 단일 노출 촬영을 하고, 그 데이터를 담은 {{domxref("Blob")}}으로 이행하는 {{jsxref("Promise")}}를 반환합니다.</span></p>
<h2 id="구문">구문</h2>
<pre class="syntaxbox">const <em>blobPromise</em> = <em>imageCaptureObj</em>.takePhoto([<em>photoSettings</em>])</pre>
<h3 id="매개변수">매개변수</h3>
<dl>
<dt><code>photoSettings</code> {{optional_inline}}</dt>
<dd>사진을 촬영할 때 사용할 옵션을 나타내는 객체. 가능한 옵션은 다음과 같습니다.
<ul>
<li><code>fillLightMode</code>: 캡처 장치의 플래시 설정. <code>"auto"</code>, <code>"off"</code>, <code>"flash"</code> 중 하나를 사용할 수 있습니다.</li>
<li><code>imageHeight</code>: 원하는 이미지 크기의 높이를 나타내는 정숫값. 일련의 정해진 크기만 지원하는 경우, {{glossary("user agent", "사용자 에이전트")}}는 이 값과 제일 가까운 높이를 사용합니다.</li>
<li><code>imageWidth</code>: 원하는 이미지 크기의 너비를 나타내는 정숫값. 일련의 정해진 크기만 지원하는 경우, 사용자 에이전트는 이 값과 제일 가까운 너비를 사용합니다.</li>
<li><code>redEyeReduction</code>: 적목 현상 감소 기능이 존재하는 경우, 사용할지 나타내는 불리언 값.</li>
</ul>
</dd>
</dl>
<h3 id="반환_값">반환 값</h3>
<p>{{domxref("Blob")}}으로 이행하는 {{jsxref("Promise")}}.</p>
<h2 id="예제">예제</h2>
<p>다음 코드는 <a href="https://simpl.info/imagecapture/">Simple Image Capture 데모</a>에서 가져온 것으로, <code>takePhoto()</code>가 반환한 {{jsxref("Promise")}}의 {{domxref("Blob")}}을 사용해 {{htmlelement("img")}} 요소에 할당하는 방법을 보입니다. 코드를 짧게 유지하기 위해 {{domxref("ImageCapture")}} 객체의 초기화 과정은 생략했습니다.</p>
<pre class="brush: 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);
});
}
</pre>
<h2 id="명세">명세</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Specification</th>
<th scope="col">Status</th>
<th scope="col">Comment</th>
</tr>
<tr>
<td>{{SpecName('MediaStream Image','#dom-imagecapture-takephoto','takePhoto()')}}</td>
<td>{{Spec2('MediaStream Image')}}</td>
<td>Initial definition.</td>
</tr>
</tbody>
</table>
<h2 id="브라우저_호환성">브라우저 호환성</h2>
<div>
<p>{{Compat("api.ImageCapture.takePhoto")}}</p>
</div>
|