将 DIV 和 SVG 的图层拼合为单个图像

Flattening layers of DIVs and SVG into a single image

本文关键字:单个 图像 图层 DIV SVG      更新时间:2023-09-26

我正在为客户开发球定制器。 它允许观看者更改球的颜色、更改文本等。 球本身只是多层div堆叠在一起,其背景图像变为预定义的颜色。 当他们想要更改球的文本时,SVG 就会出现(我使用 SVG,因为文本需要弯曲)。

当我尝试使用toDataURL时出现问题。 我猜画布中的 SVG 基本上破坏了它,使其无法通过toDataURL而浏览器不会引发安全警告。

我还有哪些其他选择? 后端是ColdFusion。

您可以通过将其放入 blob 中将 SVG 渲染为图像,您也可以使用 XHTML 命名空间将 HTML 渲染为 SVG - 安全错误是由 svg 命名空间属性 (XMLNS) 在标记中引起的 www.w3.org/2000/svg 因为是"跨源"(对我来说它只是 Chrome 错误)。如果您真的需要从客户端生成的 svg 获取像素数据 - 您可能会遇到麻烦,我不确定是否有可能使其在 chrome 中工作。我宁愿尝试直接在画布上渲染弯曲文本,而不是 svg