将 HTML5 Canvas Stage 保存为 JSON 字符串

如何将 canvas 导出为 JSON?

要使用 Konva 将舞台保存为 JSON 字符串,我们可以使用 toJSON() 方法,该方法将 Konva 节点树序列化为可以保存到 Web 存储或离线数据库的文本。我们还可以序列化其他节点,包括图层、组和形状。

toJSON() 方法无法保存滤镜、图像和事件监听器。因此它只适用于非常小的应用。对于更复杂的情况,请阅读 最佳实践

Konva 保存舞台演示view raw
<!DOCTYPE html>
<html>
<head>
<script src="https://unpkg.com/konva@9.3.18/konva.min.js"></script>
<meta charset="utf-8" />
<title>Konva Save Stage Demo</title>
<style>
body {
margin: 0;
padding: 0;
overflow: hidden;
background-color: #f0f0f0;
}
</style>
</head>
<body>
<div id="container"></div>
<script>
var width = window.innerWidth;
var height = window.innerHeight;

var stage = new Konva.Stage({
container: 'container',
width: width,
height: height,
});

var layer = new Konva.Layer();

var hexagon = new Konva.RegularPolygon({
x: width / 2,
y: height / 2,
sides: 6,
radius: 70,
fill: 'red',
stroke: 'black',
strokeWidth: 4,
});

// add the shape to the layer
layer.add(hexagon);

// add the layer to the stage
stage.add(layer);

// save stage as a json string
var json = stage.toJSON();

console.log(json);
</script>
</body>
</html>