質問するログイン新規登録

質問編集履歴

1

コードをアップしました

2021/09/08 02:46

投稿

g45.07
g45.07

スコア13

title CHANGED
File without changes
body CHANGED
@@ -18,6 +18,85 @@
18
18
  これ以降どのように保存をしていいか色々調べてもピンときません。
19
19
  画像ファイルに本当に変換できているのかもわかりません。
20
20
 
21
+ ###現在のコード
22
+ ```HTML
23
+ <div class="picturePreview">
24
+ <div id="videoPreview"></div>
25
+ <div id="canvasPreview"></div>
26
+ <form>
27
+ <button type="button" id="shutter" class="video-preview-btn" onclick="Snap();">撮影</button>
28
+ </form>
29
+ <form>
30
+ <button type="button" id="save-picture" class="video-preview-btn" onclick="Save();">保存</button>
31
+ </form>
32
+ </div>
33
+ ```
34
+
35
+ ```javascript
36
+
37
+ const cameraSize = { w: 600, h: 400 };
38
+ const resolution = { w: 1080, h: 720 };
39
+ let video;
40
+ let media;
41
+
42
+ // video要素をつくる
43
+ video = document.createElement('video');
44
+ video.id = 'video';
45
+ video.width = cameraSize.w;
46
+ video.height = cameraSize.h;
47
+ video.autoplay = true;
48
+ document.getElementById('videoPreview').appendChild(video);
49
+
50
+ // video要素にWebカメラの映像を表示させる
51
+ media = navigator.mediaDevices.getUserMedia({
52
+ audio: false,
53
+ video: {
54
+ width: { ideal: resolution.w },
55
+ height: { ideal: resolution.h }
56
+ }
57
+ }).then(function(stream) {
58
+ video.srcObject = stream;
59
+ }).catch(function (error) {
60
+ console.error('mediaDevice.getUserMedia() error:', error);
61
+ return;
62
+ });
63
+ }
64
+
65
+ function Snap(){
66
+
67
+ const canvasSize = { w: 600, h: 400 };
68
+ let canvas;
69
+ let canvasCtx;
70
+ var retake;
71
+
72
+ // canvas要素をつくる
73
+ canvas = document.createElement('canvas');
74
+ canvas.id = 'canvas';
75
+ canvas.width = canvasSize.w;
76
+ canvas.height = canvasSize.h;
77
+ document.getElementById('canvasPreview').appendChild(canvas);
78
+
79
+ // コンテキストを取得する
80
+ canvasCtx = canvas.getContext('2d');
81
+
82
+ canvasCtx.drawImage(video, 0, 0, canvas.width, canvas.height);
83
+
84
+ const tracks = document.getElementById('video').srcObject.getTracks();
85
+ tracks.forEach(track => {
86
+ track.stop();
87
+ });
88
+
89
+ }
90
+
91
+ function Save(){
92
+
93
+ const picture = canvas.toDataURL("image/png");
94
+
95
+ //色々調べてここで止まっています。
96
+
97
+ ```
98
+ ①pictureをサーバー側に送信する方法が分かりません。
99
+
21
100
  ### 補足情報(FW/ツールのバージョンなど)
22
101
 
23
102
  フロント:HTML,CSS,JavaScript,jQuery