diff --git a/apps/readest-app/src/utils/svg.ts b/apps/readest-app/src/utils/svg.ts index ce1e604e..27434c60 100644 --- a/apps/readest-app/src/utils/svg.ts +++ b/apps/readest-app/src/utils/svg.ts @@ -43,17 +43,16 @@ export async function svg2png(svgBlob: Blob, quality: number = 0.9): Promise - new Promise((resolve, reject) => { - img.onload = resolve; - img.onerror = reject; - }), - ); + await new Promise((resolve, reject) => { + img.onload = () => resolve(); + img.onerror = () => reject(new Error('Failed to load SVG')); + img.src = svgUrl; + }); + + await new Promise((resolve) => requestAnimationFrame(resolve)); + await new Promise((resolve) => requestAnimationFrame(resolve)); const canvas = document.createElement('canvas'); const { width, height } = await getSvgSize(svgBlob); @@ -63,6 +62,8 @@ export async function svg2png(svgBlob: Blob, quality: number = 0.9): Promise { canvas.toBlob((blob) => resolve(blob!), 'image/png', quality); });