你可以在
javascript中序列化/反序列化画布对象吗?
解决方法
除了get
ImageData方法之外,您还可以使用canvas.toDataURL()获取数据URL编码的PNG.如果您需要序列化到一个字符串,它将保存不必将原始数据手动转换为字符串.您可以通过创建图像并将src设置为数据URL,然后将其绘制到画布来反序列化.
[编辑为异步加载(由…提出).]
function serialize(canvas) {
return canvas.toDataURL();
}
function deserialize(data,canvas) {
var img = new Image();
img.onload = function() {
canvas.width = img.width;
canvas.height = img.height;
canvas.getContext("2d").drawImage(img,0);
};
img.src = data;
}
如果我记得正确,一些旧版本的Safari,也许Opera不支持toDataURL,但是更新版本.