Spaces:
Running
Running
| // Utility function to convert an uploaded image to base64 | |
| function getImageDataFromFile(file) { | |
| return new Promise((resolve, reject) => { | |
| const reader = new FileReader(); | |
| reader.onload = function(event) { | |
| const img = new Image(); | |
| img.onload = () => { | |
| const canvas = document.getElementById("image-canvas"); | |
| const ctx = canvas.getContext("2d"); | |
| canvas.width = img.width; | |
| canvas.height = img.height; | |
| ctx.drawImage(img, 0, 0); | |
| const imageData = ctx.getImageData(0, 0, img.width, img.height); | |
| resolve(imageData); | |
| }; | |
| img.onerror = () => reject(new Error("Failed to load image")); | |
| img.src = event.target.result; | |
| }; | |
| reader.onerror = () => reject(new Error("Failed to read file")); | |
| reader.readAsDataURL(file); | |
| }); | |
| } | |
| // Function to convert ImageData to base64 | |
| async function imageFileToBase64(file) { | |
| const imageData = await getImageDataFromFile(file); | |
| const canvas = document.createElement("canvas"); | |
| const ctx = canvas.getContext("2d"); | |
| canvas.width = imageData.width; | |
| canvas.height = imageData.height; | |
| ctx.putImageData(imageData, 0, 0); | |
| return canvas.toDataURL(); | |
| } | |