Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 保存HTML5画布数据_Javascript_Html_Html5 Canvas - Fatal编程技术网

Javascript 保存HTML5画布数据

Javascript 保存HTML5画布数据,javascript,html,html5-canvas,Javascript,Html,Html5 Canvas,我正在使用ASP.NET/JavaScript创建一个白板应用程序。HTML5Canvas是我目前开发白板功能(绘图、文本、图像、形状…)的工具。如何保存场景以便稍后加载(并继续绘制)?我见过一个保存画布PNG图像的函数,这是保存画布数据的唯一方法吗?或者有没有其他方法可以让我按照画布的语义保存画布数据,例如,我可以保存画布上绘制的线条、形状、文本和图像?我的选择是什么?画布是给定给它的指令的光栅化输出,纯粹存储像素数据。如果您需要知道实现该目标所采取的步骤,那么首先需要将它们记录在用于创建它的

我正在使用ASP.NET/JavaScript创建一个白板应用程序。HTML5Canvas是我目前开发白板功能(绘图、文本、图像、形状…)的工具。如何保存场景以便稍后加载(并继续绘制)?我见过一个保存画布PNG图像的函数,这是保存画布数据的唯一方法吗?或者有没有其他方法可以让我按照画布的语义保存画布数据,例如,我可以保存画布上绘制的线条、形状、文本和图像?我的选择是什么?

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


有类似于“撤消”画布操作的东西,但本质上它只是存储一个行数组,并每次从头开始重新绘制它们。如果单击“撤消”,将从阵列中删除一条线,否则将添加一条线。要想做你想做的事情,你需要存储一个操作数组,像这样从一个完全黑色的画布上绘制。

Ram Kulkarni写了一篇文章,描述了如何通过将拖动点记录到JSON来序列化和重放画布草图。您可以从序列化点的Ram代码开始,并将其扩展为序列化所需的任何上下文命令:在javascirpt中使用html中的ajax保存数据