这并不容易,不。没有直接的方法将 Canvas 图形导出为 SVG - 它们是根本不同的表示类型,Canvas 2D 使用光栅显示,如电视图像,而 SVG 存储几何形状,可以调整大小而不会降低质量。
简单的答案是,如果您需要 SVG 输出,请不要使用 canvas,从 SVG 开始(更简单的 SVG 图形库http://raphaeljs.com/可能在这里有用)。
复杂的答案是 - 如果您记录执行的所有画布操作并有某种方法使用 SVG 重新创建它们,则可以导出到 SVG,但是,除非您有一组受限制的操作,否则这基本上意味着您需要实现所有画布绘制功能和模式!