2014-09-29 109 views
1

我正在使用ASP.NET/JavaScript创建白板应用程序。 HTML5画布是我目前开发白板功能(绘图,文本,图像,形状等)的工具。如何保存我的场景,以便以后可以加载(并继续绘制)?我见过保存画布PNG图像的功能,它是保存画布数据的唯一方式吗?还是有另一种方式可以让我将画布数据保存在其语义中,例如,我可以保存在画布上绘制的线条,形状,文本和图像吗?我有什么选择?保存HTML5画布数据

+0

Ram Kulkarni做了一篇文章,描述了如何通过将拖动点记录到JSON来序列化和重放画布草图。您可以从Ram的代码开始,将代码序列化并将其扩展为序列化您希望的任何上下文命令:http://ramkulkarni.com/blog/deserializing-recordings-in-recordable-html5-canvas/ – markE 2014-09-29 15:22:37

+0

使用ajax从html中保存数据javascirpt – Kishan 2014-10-08 07:00:43

回答

2

画布是给出的指令的光栅化输出,纯粹是像素数据存储。如果您需要知道为达到目标所采取的步骤,您需要将它们记录在您正在使用的JavaScript中,以便首先创建它。否则,如果相对简单,您可以将每个元素绘制到堆叠/屏幕外画布上,并分别导出这些画布。显然这可能会变得很贵,这取决于你需要做的数量。

有一些像this这样的事情'撤销'画布操作,但实际上它只是存储一系列线条,并且每次都从头开始重新绘制它们。如果您单击撤消,它会从数组中删除一行,否则会添加一行。要做你想做的事情,你需要存储一个操作数组,从一个完全黑色的画布中绘制出来。