/** Convert any image file (HEIC, AVIF, WebP, PNG, etc.) to a JPEG data URL via Canvas. */ const imageToJpegDataUrl = (file) => new Promise((resolve, reject) => { const img = new Image(); img.onload = () => { const canvas = document.createElement("canvas"); canvas.width = img.naturalWidth; canvas.height = img.naturalHeight; canvas.getContext("2d").drawImage(img, 0, 0); URL.revokeObjectURL(img.src); resolve(canvas.toDataURL("image/jpeg", 0.92)); }; img.onerror = () => { URL.revokeObjectURL(img.src); reject(new Error("Failed to load image")); }; img.src = URL.createObjectURL(file); });