nagasurendra commited on
Commit
77b3303
·
verified ·
1 Parent(s): 461dffc

Update static/js/camera.js

Browse files
Files changed (1) hide show
  1. static/js/camera.js +31 -14
static/js/camera.js CHANGED
@@ -60,21 +60,38 @@ document.addEventListener('DOMContentLoaded', () => {
60
  });
61
 
62
  captureBtn.addEventListener('click', () => {
63
- fetch('/capture', { method: 'POST' })
64
- .then(response => response.json())
65
- .then(data => {
66
- if (data.status === 'captured') {
67
- video.classList.add('hidden');
68
- capturedImage.src = '/uploads/captured.jpg?' + new Date().getTime();
69
- capturedImage.classList.remove('hidden');
70
- cameraControls.classList.add('hidden');
71
- postCapture.classList.remove('hidden');
72
- if (stream) {
73
- stream.getTracks().forEach(track => track.stop());
74
- }
 
 
 
 
 
 
 
 
 
 
 
 
75
  }
76
- });
77
- });
 
 
 
 
 
78
 
79
  retakeBtn.addEventListener('click', () => {
80
  fetch('/retake', { method: 'POST' })
 
60
  });
61
 
62
  captureBtn.addEventListener('click', () => {
63
+ const context = canvas.getContext('2d');
64
+ canvas.width = video.videoWidth;
65
+ canvas.height = video.videoHeight;
66
+ context.drawImage(video, 0, 0, canvas.width, canvas.height);
67
+
68
+ canvas.toBlob(blob => {
69
+ const formData = new FormData();
70
+ formData.append('image', blob, 'captured.jpg');
71
+
72
+ fetch('/capture', {
73
+ method: 'POST',
74
+ body: formData
75
+ })
76
+ .then(response => response.json())
77
+ .then(data => {
78
+ if (data.status === 'captured') {
79
+ video.classList.add('hidden');
80
+ capturedImage.src = '/uploads/captured.jpg?' + new Date().getTime();
81
+ capturedImage.classList.remove('hidden');
82
+ cameraControls.classList.add('hidden');
83
+ postCapture.classList.remove('hidden');
84
+
85
+ if (stream) {
86
+ stream.getTracks().forEach(track => track.stop());
87
  }
88
+ } else {
89
+ alert(data.message);
90
+ }
91
+ });
92
+ }, 'image/jpeg');
93
+ });
94
+
95
 
96
  retakeBtn.addEventListener('click', () => {
97
  fetch('/retake', { method: 'POST' })