-1
我的画布上有一些图画,例如笔画,圆弧和矩形,并且我想将画布上的图形保存为一个JavaScript变量,该变量可以再次用于将画布图形恢复到另一个画布上。我可以将HTML5画布绘图保存到变量吗?
这可能吗?
我的画布上有一些图画,例如笔画,圆弧和矩形,并且我想将画布上的图形保存为一个JavaScript变量,该变量可以再次用于将画布图形恢复到另一个画布上。我可以将HTML5画布绘图保存到变量吗?
这可能吗?
您可以简单地使用HTMLCanvasElement.toDataURL(type)
,然后绘制它创建一个新的Image
,将其来源指向保存的数据作为字符串。
替代方法:使用CanvasRenderingContext2D.getImageData(x, y, width, height)获取图像数据,然后使用CanvasRenderingContext2D.putImageData(ImageData)
进行绘制。
在另一种情况下,您需要将每个绘图点设置为对象令牌。如果你在你的问题中指定,我更新答案。
基本的东西 - 你真的应该谷歌搜索它。 **保存:**'var url = canvasElement.toDataURL()',** Restore:**'var img = new Image(); img.onload =函数(){otherContext.drawImage(IMG,0,0);}; img.src = url' – markE
@markE我认为OP在一个画布路径命令序列化程序后更多,我也想我记得你有一个链接。如果不是,没有必要通过'toDataURL' +'img' +'drawImage','ctx2.drawImage(canvas1)'可能就足够了。 – Kaiido
@Kaiido。谢谢 - 你有敏锐的眼光从Q读这个! :-) [Here's](http://stackoverflow.com/questions/36368722/apply-existing-reference-to-canvasrendingcontext2d-to-an-element/36369364#36369364)上下文命令序列化程序的开始 – markE