将 visjs 网络导出到 jpeg/png 图像
Export visjs network to jpeg/png image
我正在研究 angular vis.js。
Vis.js 在 canvas 上工作,用于创建节点和节点之间的链接。
有没有办法从 visj.s canvas 中获取图像 (jpeg/png)?
看看这个片段,我认为它会对你有所帮助
在 vis canvas 下你会看到一个 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>
将其设为按钮:
network.on("afterDrawing", function(ctx) {
var dataURL = ctx.canvas.toDataURL();
document.getElementById('canvasImg').href = dataURL;
})
<input type="button" value="Download image" onclick="document.getElementById('canvasImg').click();">
<a id="canvasImg" download="filename"></a>
我正在研究 angular vis.js。 Vis.js 在 canvas 上工作,用于创建节点和节点之间的链接。
有没有办法从 visj.s canvas 中获取图像 (jpeg/png)?
看看这个片段,我认为它会对你有所帮助
在 vis canvas 下你会看到一个 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>
将其设为按钮:
network.on("afterDrawing", function(ctx) {
var dataURL = ctx.canvas.toDataURL();
document.getElementById('canvasImg').href = dataURL;
})
<input type="button" value="Download image" onclick="document.getElementById('canvasImg').click();">
<a id="canvasImg" download="filename"></a>