Spaces:
Sleeping
Sleeping
Commit
·
8a4f752
1
Parent(s):
386bcc5
Update templates/index.html
Browse fileschangement de taille des images sélectionnées
- templates/index.html +26 -32
templates/index.html
CHANGED
@@ -35,8 +35,10 @@
|
|
35 |
}
|
36 |
.preview-image {
|
37 |
width: 100%;
|
|
|
38 |
height: auto;
|
39 |
-
margin
|
|
|
40 |
border-radius: 8px;
|
41 |
opacity: 0;
|
42 |
transition: opacity 0.5s ease-in;
|
@@ -53,6 +55,13 @@
|
|
53 |
font-size: 18px;
|
54 |
color: #555;
|
55 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
</style>
|
57 |
</head>
|
58 |
|
@@ -61,7 +70,6 @@
|
|
61 |
<h1 class="text-center">Compare Two Images</h1>
|
62 |
|
63 |
<div class="row mt-4">
|
64 |
-
|
65 |
<!-- Column 1: Original Image -->
|
66 |
<div class="col-md-6">
|
67 |
<h5 class="text-center">Select Original Image</h5>
|
@@ -115,28 +123,18 @@
|
|
115 |
<button class="btn btn-outline-primary" onclick="document.getElementById('fileInput2').click()">Upload AI Image</button>
|
116 |
</div>
|
117 |
</div>
|
118 |
-
|
119 |
</div>
|
120 |
|
121 |
-
<!-- Compare Button -->
|
122 |
-
<div id="
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
<div class="col-md-6 text-center">
|
128 |
-
<h6>Original Image</h6>
|
129 |
-
<img id="previewImage1" class="preview-image img-fluid" alt="Original Preview">
|
130 |
-
</div>
|
131 |
-
<div class="col-md-6 text-center">
|
132 |
-
<h6>AI Generated Image</h6>
|
133 |
-
<img id="previewImage2" class="preview-image img-fluid" alt="AI Preview">
|
134 |
</div>
|
|
|
135 |
</div>
|
136 |
|
137 |
-
<!-- Result -->
|
138 |
-
<div id="results" class="mt-5"></div>
|
139 |
-
|
140 |
</div>
|
141 |
|
142 |
<!-- Scripts -->
|
@@ -158,12 +156,12 @@
|
|
158 |
const file = new File([blob], `preset${presetNumber}.webp`, { type: blob.type });
|
159 |
if (target === 1) {
|
160 |
file1 = file;
|
161 |
-
updatePreview(
|
162 |
resetSelection(1);
|
163 |
document.getElementById(`preset-${presetNumber}-1`).classList.add('selected');
|
164 |
} else {
|
165 |
file2 = file;
|
166 |
-
updatePreview(
|
167 |
resetSelection(2);
|
168 |
document.getElementById(`preset-${presetNumber}-2`).classList.add('selected');
|
169 |
}
|
@@ -171,13 +169,9 @@
|
|
171 |
.then(() => checkReadyToCompare());
|
172 |
}
|
173 |
|
174 |
-
function updatePreview(
|
175 |
const reader = new FileReader();
|
176 |
reader.onload = (event) => {
|
177 |
-
document.getElementById(dropzoneId).innerHTML = `
|
178 |
-
<img src="${event.target.result}" class="preview-image visible"/>
|
179 |
-
`;
|
180 |
-
|
181 |
if (target === 1) {
|
182 |
document.getElementById('previewImage1').src = event.target.result;
|
183 |
document.getElementById('previewImage1').classList.add('visible');
|
@@ -185,22 +179,21 @@
|
|
185 |
document.getElementById('previewImage2').src = event.target.result;
|
186 |
document.getElementById('previewImage2').classList.add('visible');
|
187 |
}
|
188 |
-
|
189 |
-
document.getElementById('previewSection').style.display = 'flex';
|
190 |
};
|
191 |
reader.readAsDataURL(blob);
|
192 |
}
|
193 |
|
194 |
document.getElementById('fileInput1').addEventListener('change', (e) => {
|
195 |
file1 = e.target.files[0];
|
196 |
-
updatePreview(
|
197 |
resetSelection(1);
|
198 |
checkReadyToCompare();
|
199 |
});
|
200 |
|
201 |
document.getElementById('fileInput2').addEventListener('change', (e) => {
|
202 |
file2 = e.target.files[0];
|
203 |
-
updatePreview(
|
204 |
resetSelection(2);
|
205 |
checkReadyToCompare();
|
206 |
});
|
@@ -209,7 +202,7 @@
|
|
209 |
const container = document.getElementById('compareButtonContainer');
|
210 |
if (file1 && file2) {
|
211 |
container.innerHTML = `
|
212 |
-
<button class="btn btn-primary
|
213 |
`;
|
214 |
} else {
|
215 |
container.innerHTML = '';
|
@@ -244,7 +237,7 @@
|
|
244 |
|
245 |
if (data.distance !== undefined) {
|
246 |
resultsDiv.innerHTML = `
|
247 |
-
<div class="card p-4 text-center">
|
248 |
<h4>Euclidean Distance</h4>
|
249 |
<p class="display-6">${data.distance.toFixed(4)}</p>
|
250 |
</div>`;
|
@@ -264,3 +257,4 @@
|
|
264 |
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
|
265 |
</body>
|
266 |
</html>
|
|
|
|
35 |
}
|
36 |
.preview-image {
|
37 |
width: 100%;
|
38 |
+
max-width: 200px;
|
39 |
height: auto;
|
40 |
+
margin: 10px auto;
|
41 |
+
display: block;
|
42 |
border-radius: 8px;
|
43 |
opacity: 0;
|
44 |
transition: opacity 0.5s ease-in;
|
|
|
55 |
font-size: 18px;
|
56 |
color: #555;
|
57 |
}
|
58 |
+
#compareSection {
|
59 |
+
margin-top: 30px;
|
60 |
+
text-align: center;
|
61 |
+
}
|
62 |
+
#results {
|
63 |
+
margin-top: 20px;
|
64 |
+
}
|
65 |
</style>
|
66 |
</head>
|
67 |
|
|
|
70 |
<h1 class="text-center">Compare Two Images</h1>
|
71 |
|
72 |
<div class="row mt-4">
|
|
|
73 |
<!-- Column 1: Original Image -->
|
74 |
<div class="col-md-6">
|
75 |
<h5 class="text-center">Select Original Image</h5>
|
|
|
123 |
<button class="btn btn-outline-primary" onclick="document.getElementById('fileInput2').click()">Upload AI Image</button>
|
124 |
</div>
|
125 |
</div>
|
|
|
126 |
</div>
|
127 |
|
128 |
+
<!-- Section for Preview + Compare Button + Distance -->
|
129 |
+
<div id="compareSection" class="d-flex justify-content-center align-items-center flex-column" style="display: none;">
|
130 |
+
<div class="d-flex justify-content-around align-items-center w-100">
|
131 |
+
<img id="previewImage1" class="preview-image" alt="Original Preview">
|
132 |
+
<div id="compareButtonContainer"></div>
|
133 |
+
<img id="previewImage2" class="preview-image" alt="AI Preview">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
</div>
|
135 |
+
<div id="results"></div>
|
136 |
</div>
|
137 |
|
|
|
|
|
|
|
138 |
</div>
|
139 |
|
140 |
<!-- Scripts -->
|
|
|
156 |
const file = new File([blob], `preset${presetNumber}.webp`, { type: blob.type });
|
157 |
if (target === 1) {
|
158 |
file1 = file;
|
159 |
+
updatePreview(blob, 1);
|
160 |
resetSelection(1);
|
161 |
document.getElementById(`preset-${presetNumber}-1`).classList.add('selected');
|
162 |
} else {
|
163 |
file2 = file;
|
164 |
+
updatePreview(blob, 2);
|
165 |
resetSelection(2);
|
166 |
document.getElementById(`preset-${presetNumber}-2`).classList.add('selected');
|
167 |
}
|
|
|
169 |
.then(() => checkReadyToCompare());
|
170 |
}
|
171 |
|
172 |
+
function updatePreview(blob, target) {
|
173 |
const reader = new FileReader();
|
174 |
reader.onload = (event) => {
|
|
|
|
|
|
|
|
|
175 |
if (target === 1) {
|
176 |
document.getElementById('previewImage1').src = event.target.result;
|
177 |
document.getElementById('previewImage1').classList.add('visible');
|
|
|
179 |
document.getElementById('previewImage2').src = event.target.result;
|
180 |
document.getElementById('previewImage2').classList.add('visible');
|
181 |
}
|
182 |
+
document.getElementById('compareSection').style.display = 'flex';
|
|
|
183 |
};
|
184 |
reader.readAsDataURL(blob);
|
185 |
}
|
186 |
|
187 |
document.getElementById('fileInput1').addEventListener('change', (e) => {
|
188 |
file1 = e.target.files[0];
|
189 |
+
updatePreview(file1, 1);
|
190 |
resetSelection(1);
|
191 |
checkReadyToCompare();
|
192 |
});
|
193 |
|
194 |
document.getElementById('fileInput2').addEventListener('change', (e) => {
|
195 |
file2 = e.target.files[0];
|
196 |
+
updatePreview(file2, 2);
|
197 |
resetSelection(2);
|
198 |
checkReadyToCompare();
|
199 |
});
|
|
|
202 |
const container = document.getElementById('compareButtonContainer');
|
203 |
if (file1 && file2) {
|
204 |
container.innerHTML = `
|
205 |
+
<button class="btn btn-primary" onclick="processImages()">Compare</button>
|
206 |
`;
|
207 |
} else {
|
208 |
container.innerHTML = '';
|
|
|
237 |
|
238 |
if (data.distance !== undefined) {
|
239 |
resultsDiv.innerHTML = `
|
240 |
+
<div class="card mt-3 p-4 text-center">
|
241 |
<h4>Euclidean Distance</h4>
|
242 |
<p class="display-6">${data.distance.toFixed(4)}</p>
|
243 |
</div>`;
|
|
|
257 |
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
|
258 |
</body>
|
259 |
</html>
|
260 |
+
|