async (imgString) => { const exportMaxWidth = 4000; const tempImg = new Image(); const loadImage = () => { return new Promise((resolve, reject) => { tempImg.onload = (event) => resolve(event.currentTarget); tempImg.onerror = () => { reject("error loading string as an image"); }; tempImg.src = imgString; }); }; const img = await loadImage(); const canvas = document.createElement("canvas"); canvas.width = Math.min(img.width, exportMaxWidth); canvas.height = (canvas.width * img.height) / img.width; const ctx = canvas.getContext("2d"); if (!ctx) { return ""; } ctx.drawImage(img, 0, 0, canvas.width, canvas.height); return canvas.toDataURL("image/png"); }