您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

canvas.toDataUrl返回“ data :;” 当canvas.width / height太大时

canvas.toDataUrl返回“ data :;” 当canvas.width / height太大时

Canvas元素的最大大小在浏览器实现中会有所不同。您可以在此Q / A中找到这些最大尺寸的良好列表。

它们对导出方法也有限制。在我的Chrome浏览器中,toDataURL返回的结果与宽度data:;大约为 画布的返回值相同,而我的Firefox的返回值NS_ERROR_FAILURE大约为 。其他浏览器可能根据自己的实现而具有不同的值。

因此,如果您真的想通过画布,则必须将画布的大小限制为这些最大区域。

现在,如果您可以在服务器端进行转换,则可以使用它。蜡染被称为是很好的SVG UA,并且应该能够正确转换SVG,除非在SVG <foreignObject>元素内还可以渲染HTML 。

在这种情况下,最好的方法是使用像 这样的无头浏览器来截取渲染页面的真实屏幕截图。

另一种方法是将较大的SVG绘制到较小的画布上,然后在服务器端或通过字节操作合并生成的PNG图像(可能需要一些额外的工作)。

其他 2022/1/1 18:25:08 有613人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶