let loadingInterval; function handlePaste(event) { const items = (event.clipboardData || event.originalEvent.clipboardData).items; for (const item of items) { if (item.type.indexOf("image") === 0) { const blob = item.getAsFile(); const reader = new FileReader(); reader.onload = function(event) { const img = document.getElementById("pasted-image"); img.src = event.target.result; img.style.display = "block"; }; reader.readAsDataURL(blob); } } } function saveImage() { const img = document.getElementById("pasted-image"); if (img.src) { fetch('/save_pasted_image', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ image: img.src }) }) .then(response => response.json()) .then(data => { console.log(data.message); alert("Image saved successfully!"); const capturedImage = document.getElementById('captured-image'); capturedImage.src = img.src; capturedImage.style.display = 'block'; }) .catch(console.error); } else { alert("No image to save!"); } } function performOCR() { clearOCRResult(); showLoading(); disableButton(); fetch('/imgocr', { method: 'POST', headers: { 'Content-Type': 'application/json' } }) .then(response => response.json()) .then(data => { document.getElementById('ocr-result').innerText = data.result; hideLoading(); enableButton(); }) .catch(error => { console.error(error); hideLoading(); enableButton(); }); } function showLoading() { const loadingElement = document.getElementById('loading'); loadingElement.style.display = 'block'; } function hideLoading() { const loadingElement = document.getElementById('loading'); loadingElement.style.display = 'none'; } function clearOCRResult() { document.getElementById('ocr-result').innerText = ''; } function disableButton() { const button = document.querySelector('button[onclick="performOCR()"]'); button.disabled = true; button.style.backgroundColor = '#cccccc'; } function enableButton() { const button = document.querySelector('button[onclick="performOCR()"]'); button.disabled = false; button.style.backgroundColor = '#007bff'; }