你可以在
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,但是更新版本.