The context.getImageData()
是您正在寻找的功能。它将返回一个ImageData
来自画布上数据的对象(MDN https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/getImageData)。它的语法如下:
ImageData ctx.getImageData(sx, sy, sw, sh);
因此,如果您想保存并序列化画布中的数据,您可以使用以下代码:
var data = context.getImageData(0, 0, context.canvas.width, context.canvas.height).data;
Now the .data
财产在ImageData
对象是一个Uint8ClampedArray
,这基本上是画布上所有颜色的一个大列表。但是,您选择序列化并不重要。
Let's say that you've received one of the serialized canvas "messages" and want to put it back onto a canvas. No problem, all you need is
context.putImageData()
:
context.putImageData(message.data, 0, 0);
这会将第一个画布中的数据“粘贴”到第二个画布上。
祝你好运!