演示:
整页:https : //angularjs-
rj88cu.stackblitz.io/
代码:https://stackblitz.com/edit/angularjs-
rj88cu
说明:
编辑器是一个svg,其中包含背景图像和
<image>和区域,因为
<path>两者都是从
editor.imageUrl和创建的
editor.areas
要下载,
- 背景图像绘制在画布上
- SVG(不带
<image>
)被转换为dataUrl,然后在画布上绘制 - 画布转换为dataUrl以进行下载
为什么首先不使用canvas而不是svg?
因为鼠标交互很难在画布中实现,并且像DOM元素(悬停伪类,单击事件等)之类的工作在嵌入式svg中要容易得多
我还假设您想要angularjs,因为您已经对其进行了标记(即使您未在问题中提及)
此外,代码中还有很多不良做法,例如编辑器不是组件,也不是对
input[type=color]Shadow
DOM进行样式设置(可以使用一些colorpicker插件代替)
PS:告诉我是否需要更改



