| const uploadArea = document.getElementById("uploadArea");
|
| const fileInput = document.getElementById("fileInput");
|
| const preview = document.getElementById("preview");
|
| const runBtn = document.getElementById("runBtn");
|
| const loader = document.getElementById("loader");
|
| const result = document.getElementById("result");
|
|
|
| let uploadedFile = null;
|
|
|
|
|
| uploadArea.addEventListener("click", () => fileInput.click());
|
|
|
|
|
| fileInput.addEventListener("change", (e) => {
|
| uploadedFile = e.target.files[0];
|
| showPreview(uploadedFile);
|
| });
|
|
|
|
|
| uploadArea.addEventListener("dragover", (e) => {
|
| e.preventDefault();
|
| uploadArea.style.background = "rgba(79,195,247,0.2)";
|
| });
|
|
|
| uploadArea.addEventListener("dragleave", () => {
|
| uploadArea.style.background = "rgba(255,255,255,0.05)";
|
| });
|
|
|
| uploadArea.addEventListener("drop", (e) => {
|
| e.preventDefault();
|
| uploadedFile = e.dataTransfer.files[0];
|
| showPreview(uploadedFile);
|
| });
|
|
|
| function showPreview(file) {
|
| if (!file) return;
|
| const reader = new FileReader();
|
| reader.onload = (e) => {
|
| preview.innerHTML = `<img src="${e.target.result}" alt="Preview">`;
|
| };
|
| reader.readAsDataURL(file);
|
| }
|
|
|
| runBtn.addEventListener("click", async () => {
|
| if (!uploadedFile) {
|
| alert("Please upload an image first!");
|
| return;
|
| }
|
|
|
| loader.style.display = "block";
|
| result.innerHTML = "";
|
|
|
| const formData = new FormData();
|
| formData.append("file", uploadedFile);
|
|
|
| try {
|
| const response = await fetch("http://127.0.0.1:5000/predict", {
|
| method: "POST",
|
| body: formData,
|
| });
|
|
|
| if (!response.ok) throw new Error("Failed to fetch result from backend.");
|
|
|
| const blob = await response.blob();
|
| const url = URL.createObjectURL(blob);
|
|
|
| loader.style.display = "none";
|
| result.innerHTML = `
|
| <div>
|
| <h3>Original</h3>
|
| <img src="${URL.createObjectURL(uploadedFile)}" alt="Original">
|
| </div>
|
| <div>
|
| <h3>Denoised Image</h3>
|
| <img src="${url}" alt="Denoised Image">
|
| </div>
|
| `;
|
|
|
| } catch (err) {
|
| loader.style.display = "none";
|
| alert(err.message);
|
| }
|
| });
|
|
|