質問編集履歴

1

コードをアップしました

2021/09/08 02:46

投稿

g45.07
g45.07

スコア13

test CHANGED
File without changes
test CHANGED
@@ -38,6 +38,164 @@
38
38
 
39
39
 
40
40
 
41
+ ###現在のコード
42
+
43
+ ```HTML
44
+
45
+ <div class="picturePreview">
46
+
47
+ <div id="videoPreview"></div>
48
+
49
+ <div id="canvasPreview"></div>
50
+
51
+ <form>
52
+
53
+ <button type="button" id="shutter" class="video-preview-btn" onclick="Snap();">撮影</button>
54
+
55
+ </form>
56
+
57
+ <form>
58
+
59
+ <button type="button" id="save-picture" class="video-preview-btn" onclick="Save();">保存</button>
60
+
61
+ </form>
62
+
63
+ </div>
64
+
65
+ ```
66
+
67
+
68
+
69
+ ```javascript
70
+
71
+
72
+
73
+ const cameraSize = { w: 600, h: 400 };
74
+
75
+ const resolution = { w: 1080, h: 720 };
76
+
77
+ let video;
78
+
79
+ let media;
80
+
81
+
82
+
83
+ // video要素をつくる
84
+
85
+ video = document.createElement('video');
86
+
87
+ video.id = 'video';
88
+
89
+ video.width = cameraSize.w;
90
+
91
+ video.height = cameraSize.h;
92
+
93
+ video.autoplay = true;
94
+
95
+ document.getElementById('videoPreview').appendChild(video);
96
+
97
+
98
+
99
+ // video要素にWebカメラの映像を表示させる
100
+
101
+ media = navigator.mediaDevices.getUserMedia({
102
+
103
+ audio: false,
104
+
105
+ video: {
106
+
107
+ width: { ideal: resolution.w },
108
+
109
+ height: { ideal: resolution.h }
110
+
111
+ }
112
+
113
+ }).then(function(stream) {
114
+
115
+ video.srcObject = stream;
116
+
117
+ }).catch(function (error) {
118
+
119
+ console.error('mediaDevice.getUserMedia() error:', error);
120
+
121
+ return;
122
+
123
+ });
124
+
125
+ }
126
+
127
+
128
+
129
+ function Snap(){
130
+
131
+
132
+
133
+ const canvasSize = { w: 600, h: 400 };
134
+
135
+ let canvas;
136
+
137
+ let canvasCtx;
138
+
139
+ var retake;
140
+
141
+
142
+
143
+ // canvas要素をつくる
144
+
145
+ canvas = document.createElement('canvas');
146
+
147
+ canvas.id = 'canvas';
148
+
149
+ canvas.width = canvasSize.w;
150
+
151
+ canvas.height = canvasSize.h;
152
+
153
+ document.getElementById('canvasPreview').appendChild(canvas);
154
+
155
+
156
+
157
+ // コンテキストを取得する
158
+
159
+ canvasCtx = canvas.getContext('2d');
160
+
161
+
162
+
163
+ canvasCtx.drawImage(video, 0, 0, canvas.width, canvas.height);
164
+
165
+
166
+
167
+ const tracks = document.getElementById('video').srcObject.getTracks();
168
+
169
+ tracks.forEach(track => {
170
+
171
+ track.stop();
172
+
173
+ });
174
+
175
+
176
+
177
+ }
178
+
179
+
180
+
181
+ function Save(){
182
+
183
+
184
+
185
+ const picture = canvas.toDataURL("image/png");
186
+
187
+
188
+
189
+ //色々調べてここで止まっています。
190
+
191
+
192
+
193
+ ```
194
+
195
+ ①pictureをサーバー側に送信する方法が分かりません。
196
+
197
+
198
+
41
199
  ### 補足情報(FW/ツールのバージョンなど)
42
200
 
43
201