我正在开发一个网页,对 SVG 字符串数据进行一些相当繁重的处理。因为这些字符串的大小可能达到 m/bs,所以我想将 SVG 的渲染(取决于浏览器)移至工作人员,以避免阻塞 UI。
我的问题是,worker 中无法访问 DOM 元素 - 有没有办法仅使用 SVG 字符串将 SVG 绘制到 OffscreenCanvas 的 2D 上下文?或者有没有办法将字符串转换为可以传递给工作人员的数据格式?
还没有原生方式。
根据规范,您应该能够创建一个图像位图 https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap即使在 Worker 中,也可以从保存 SVG 图像的 Blob 中获取。
事实上,还没有浏览器实现了它,当我与实现者谈论它时,似乎没有人会这样做。
在 Chrome 中,您可以访问 Path2D 构造函数,这可以在某种程度上帮助您<path>
's d
属性,但这实际上只是渲染 SVG 的一小部分。
所以最好的办法可能是使用一个库来实现这一点。
值得注意的是,我认为canvg https://github.com/canvg/canvg放在这里最合适。我自己不使用它,但它们已经存在很长时间了,而且似乎最新版本确实可以在 Worker 中(在 Chrome 中)与 OffscreenCanvas 配合使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)