将visjs网络导出到jpeg / png图像

时间:2017-03-08 04:45:35

标签: angularjs canvas vis.js vis.js-network

我正致力于角度vis.js. Vis.js在canvas上工作,用于在节点之间创建节点和链接。

有没有办法从visj.s画布中获取图像(jpeg / png)?

1 个答案:

答案 0 :(得分:6)

看看这个片段,我认为它会对你有帮助

在vis画布下,您将看到PNG图像。 您可以右键单击此图像并保存。 (或者你可以用任何其他标准方式保存它)

祝你好运。



// create an array with nodes
  var nodes = new vis.DataSet([
    {id: 1, label: 'Node 1'},
    {id: 2, label: 'Node 2'},
    {id: 3, label: 'Node 3'},
    {id: 4, label: 'Node 4'},
    {id: 5, label: 'Node 5'}
  ]);

  // create an array with edges
  var edges = new vis.DataSet([
    {from: 1, to: 3},
    {from: 1, to: 2},
    {from: 2, to: 4},
    {from: 2, to: 5}
  ]);

  // create a network
  var container = document.getElementById('mynetwork');
  var data = {
    nodes: nodes,
    edges: edges
  };
  var options = {};
  var network = new vis.Network(container, data, options);

  network.on("afterDrawing", function (ctx) {
    var dataURL = ctx.canvas.toDataURL();
    document.getElementById('canvasImg').src = dataURL;
  });

#mynetwork {
      width: 600px;
      height: 400px;
      border: 1px solid lightgray;
    }

    p {
      max-width: 600px;
    }

<!doctype html>
<html>
<head>
  <title>Network | Basic usage</title>
  <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/vis/4.20.0/vis.min.js"></script>
  <link href="https://cdnjs.cloudflare.com/ajax/libs/vis/4.20.0/vis.min.css" rel="stylesheet" type="text/css"/>
</head>
<body>

<div id="mynetwork"></div>
<pre id="eventSpan"></pre>
<img id="canvasImg" alt="Right click to save me!">



</body>
</html>
&#13;
&#13;
&#13;