javascript - 使用 javascript 将 SVG 保存为 PNG(或其他)

标签 javascript d3.js svg reactjs

我想将生成的 SVG(通过使用 d3 的 JavaScript 图形库)保存为 PNG 或其他图像格式。

我尝试过: https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Drawing_DOM_objects_into_a_canvas

这不会将我的 SVG 渲染到 Canvas 上。该示例有效,但不适用于我的 SVG,因为它不包含 <foreignObject>指令。

有没有其他不涉及服务器端的图片保存方式?

技术细节:

  • 项目使用 ReactJS
  • 尽管我考虑改用“Victory”,但我还是使用“Recharts”库来绘制图表。

最佳答案

类似的事情怎么样:

Capture HTML Canvas as gif/jpg/png/pdf?

他们建议创建一个数据网址:

var image = canvas.toDataURL("image/png");

然后将带有数据 url 的 img 元素添加到 DOM

document.write('<img src="'+image+'"/>');

或者只是将其分配给window.location

window.location = canvas.toDataURL("image/png");

关于javascript - 使用 javascript 将 SVG 保存为 PNG(或其他),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43683475/

相关文章:

javascript - 在本地重新分配全局变量,而不在全局范围内更改它们。 JavaScript

javascript - 如何重新渲染谷歌地图以对状态变化使用react?

javascript - 在我的 cordova 应用程序上使用 webrtc 代码

d3.js - 在javascript/d3中读取DOT文件

javascript - 有没有办法避免 d3.js 中的代码重复?

html - 垂直对齐 svg 内的图像

javascript - 带有失去焦点的组合框的 Ext.tip.Tooltip

javascript - 在 d3v4 堆积条形图中使用 JSON

javascript - 数据绑定(bind)中的关键函数: objects vs strings

javascript - Highcharts js : get errors if there is a big point in a 3d series chart