devlim commited on
Commit
7f6dd4a
โ€ข
1 Parent(s): 11c5ebc

Update templates/index.html

Browse files
Files changed (1) hide show
  1. templates/index.html +32 -23
templates/index.html CHANGED
@@ -83,7 +83,7 @@
83
  <h1>์„ฑ๋ถ„๋ถ„์„ํ‘œ</h1>
84
  <video id="video" autoplay></video>
85
  <button id="snap">์‚ฌ์ง„ ์ฐ๊ธฐ</button>
86
- <canvas id="canvas"></canvas>
87
  <p id="analysisResult" class="result"></p>
88
  </div>
89
 
@@ -102,32 +102,35 @@
102
  console.error("Error accessing webcam: " + err);
103
  });
104
 
 
 
 
 
 
 
 
 
 
105
  function processAnalysisResult(result) {
106
  const match = result.match(/\d+/);
107
  if (match) {
108
  const sugarContent = parseInt(match[0], 10);
109
  let message = '';
110
  let className = '';
111
- let count = '';
112
-
113
  if (sugarContent >= 0 && sugarContent <= 20) {
114
  message = 'good';
115
  className = 'good';
116
- count = match;
117
  } else if (sugarContent >= 21 && sugarContent <= 50) {
118
  message = 'normal';
119
  className = 'normal';
120
- count = match;
121
  } else if (sugarContent >= 51) {
122
  message = 'dangerous';
123
  className = 'dangerous';
124
- count = match;
125
  }
126
-
127
- analysisResult.textContent = message + match;
128
  analysisResult.className = className;
129
  } else {
130
- analysisResult.textContent = 'Error: Could not analyze image.' + match;
131
  analysisResult.className = '';
132
  }
133
  }
@@ -135,22 +138,28 @@
135
  snap.addEventListener('click', () => {
136
  context.drawImage(video, 0, 0, canvas.width, canvas.height);
137
  const dataURL = canvas.toDataURL('image/png');
 
 
 
 
 
138
  fetch('/save_image', {
139
  method: 'POST',
140
- headers: {
141
- 'Content-Type': 'application/json',
142
- },
143
- body: JSON.stringify({ image: dataURL })
144
- }).then(response => response.json())
145
- .then(data => {
146
- if (data.analysis_result) {
147
- processAnalysisResult(data.analysis_result);
148
- } else {
149
- analysisResult.textContent = 'Error: ์„ฑ๋ถ„๋ถ„์„ํ‘œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.';
150
- analysisResult.className = '';
151
- }
152
- alert(data.message);
153
- });
 
154
  });
155
  </script>
156
  </body>
 
83
  <h1>์„ฑ๋ถ„๋ถ„์„ํ‘œ</h1>
84
  <video id="video" autoplay></video>
85
  <button id="snap">์‚ฌ์ง„ ์ฐ๊ธฐ</button>
86
+ <canvas id="canvas" style="display:none;"></canvas>
87
  <p id="analysisResult" class="result"></p>
88
  </div>
89
 
 
102
  console.error("Error accessing webcam: " + err);
103
  });
104
 
105
+ function dataURLToFile(dataurl, filename) {
106
+ let arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
107
+ bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
108
+ while (n--) {
109
+ u8arr[n] = bstr.charCodeAt(n);
110
+ }
111
+ return new File([u8arr], filename, { type: mime });
112
+ }
113
+
114
  function processAnalysisResult(result) {
115
  const match = result.match(/\d+/);
116
  if (match) {
117
  const sugarContent = parseInt(match[0], 10);
118
  let message = '';
119
  let className = '';
 
 
120
  if (sugarContent >= 0 && sugarContent <= 20) {
121
  message = 'good';
122
  className = 'good';
 
123
  } else if (sugarContent >= 21 && sugarContent <= 50) {
124
  message = 'normal';
125
  className = 'normal';
 
126
  } else if (sugarContent >= 51) {
127
  message = 'dangerous';
128
  className = 'dangerous';
 
129
  }
130
+ analysisResult.textContent = `${message}: ${sugarContent}g`;
 
131
  analysisResult.className = className;
132
  } else {
133
+ analysisResult.textContent = 'Error: Could not analyze image.';
134
  analysisResult.className = '';
135
  }
136
  }
 
138
  snap.addEventListener('click', () => {
139
  context.drawImage(video, 0, 0, canvas.width, canvas.height);
140
  const dataURL = canvas.toDataURL('image/png');
141
+ const file = dataURLToFile(dataURL, 'captured_image.png');
142
+
143
+ const formData = new FormData();
144
+ formData.append('image', file);
145
+
146
  fetch('/save_image', {
147
  method: 'POST',
148
+ body: formData
149
+ })
150
+ .then(response => response.json())
151
+ .then(data => {
152
+ if (data.analysis_result) {
153
+ processAnalysisResult(data.analysis_result);
154
+ } else {
155
+ analysisResult.textContent = 'Error: ์„ฑ๋ถ„๋ถ„์„ํ‘œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.';
156
+ analysisResult.className = '';
157
+ }
158
+ alert(data.message);
159
+ })
160
+ .catch(error => {
161
+ console.error('Error:', error);
162
+ });
163
  });
164
  </script>
165
  </body>