Procházet zdrojové kódy

添加释放canvas缓存

lex před 1 rokem
rodič
revize
40b4a5ca5d
1 změnil soubory, kde provedl 13 přidání a 0 odebrání
  1. 13 0
      src/tenant/music/music-detail/formatSvgToImg.ts

+ 13 - 0
src/tenant/music/music-detail/formatSvgToImg.ts

@@ -52,5 +52,18 @@ export const svgtopng = async (svg: any, width: any, height: any) => {
   await v.start()
   const blob = await canvas.convertToBlob()
   const base64 = await blobToBase64(blob)
+  // canvas.drawImage(base64
+  releaseCanvas(canvas)
   return base64
 }
+
+function releaseCanvas(canvasElement) {
+  // 清空 Canvas 上的内容
+  const ctx = canvasElement.getContext('2d')
+  ctx.clearRect(0, 0, canvasElement.width, canvasElement.height)
+
+  // 停止任何正在进行的动画或定时器
+  cancelAnimationFrame(canvasElement.animationId)
+  // 删除对 Canvas 元素的引用
+  canvasElement = null
+}