Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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进行徒手绘图_Javascript_Svg_Drawing_Html5 Canvas_Vml - Fatal编程技术网

使用JavaScript进行徒手绘图

使用JavaScript进行徒手绘图,javascript,svg,drawing,html5-canvas,vml,Javascript,Svg,Drawing,Html5 Canvas,Vml,除了HTML5画布,还有什么解决方案可以用来实现JavaScript中的徒手绘制 我尝试过使用HTML5画布,但没有成功,因为我在保存画布和文本时遇到了问题。此外,画布只能保存为图像。但我需要将其保存为一种格式,以便打开并再次绘制和编辑文本。更新: 现在,在您向问题中添加了更多信息后,我知道您为什么不想使用canvas(您仍然可以使用canvas,但使用方式与以前不同,但您可能更喜欢另一种应用程序方法-请参见下文)。人们已经投票决定关闭你的答案,这意味着在重新打开之前无法发布新答案,因此我将尝试

除了HTML5画布,还有什么解决方案可以用来实现JavaScript中的徒手绘制

我尝试过使用HTML5画布,但没有成功,因为我在保存画布和文本时遇到了问题。此外,画布只能保存为图像。但我需要将其保存为一种格式,以便打开并再次绘制和编辑文本。

更新: 现在,在您向问题中添加了更多信息后,我知道您为什么不想使用canvas(您仍然可以使用canvas,但使用方式与以前不同,但您可能更喜欢另一种应用程序方法-请参见下文)。人们已经投票决定关闭你的答案,这意味着在重新打开之前无法发布新答案,因此我将尝试更新我的答案。我也投票赞成重新提出你的问题

JavaScript选项中的绘图 对于HTML中的徒手绘图,您只有3个选项:

  • 帆布
  • SVG(IE上的VML)
  • 插件(如Flash、Java、Silverlight)
  • 你没有解释你为什么不想使用画布

    浏览器支持 如果需要定位的浏览器不支持画布,则可以:

    • 使用SVG或VML(或像Raphaël一样使用SVG/VML的库)
    • 使用实现画布的工具(如Flash),如:
    美国石油学会 如果本机画布API不适合您的需要,那么您可以使用提供更多功能的画布库或更好的API

    以下是一些快速链接,帮助您开始:

    • (不再维护!)
    保留模式与立即模式 您需要的是渲染(与渲染相反)

    画布是SVG/VML在保留模式下工作时立即模式渲染的一个示例。这意味着,一旦你在画布上绘制了一些东西,它只是像素,你就不能操纵已经绘制的对象或保存平面光栅图像以外的任何东西。另一方面,SVG保留了您绘制的对象的整个DOM(就像在HTML中一样),并且您可以轻松地操作那里的所有内容、附加事件、更改颜色、填充样式、在绘制或保存后移动对象等

    您仍然可以使用Canvas做您想做的事情,但是您需要一些库来帮助您跟踪正在绘制的所有内容-一个库,它提供了一个保留模式作为即时模式Canvas API之上的抽象层-我前面描述的一些库就是这样工作的,请参阅上面的链接,但您仍然可以找到另一种更适合您需要的方法

    现成的解决办法
    看看这个(或正在进行的)项目,尤其是see和其他项目。使用SVG编辑可能是实现目标的最简单方法。

    欢迎使用堆栈溢出!不幸的是,目前这个问题在这里不起作用。在你问这个问题之前,你至少要试一下。我编辑了你的答案。请下次再看。我想实现一个笔记本。我应该能够以一种格式写入和绘制并保存它,这样我就可以再次打开它并执行绘制和写入。当我使用HTML5画布时,我无法以图像以外的格式保存它。因此我无法在图像上绘制和写入文本。