我最近使用画布将图像转换为 webp,使用:
const dataUrl = canvas.toDataURL('image/webp');
但是对于某些图像,这需要很多时间,例如 400 毫秒。
我收到了来自 Chrome 的警告,因为它阻止了 UI。
我想使用 Offscreen Canvas 在后台执行该转换。
但 :
1) 我不知道我应该使用哪个屏幕外画布:a] new OffscreenCanvas() b] canvas.transferControlToOffscreen()
2) 我在 Image 对象 (img.src = url) 中加载本地图像 url 以获取本地图像的宽度和高度。但我不明白如何将 Image 对象转移到屏幕外的 Canvas,以便能够在 worker 中做到:
ctx.drawImage(img, 0, 0)
因为如果我不传输图像,worker 不知道 img。