一尘不染

更改图像的特定区域并在该区域填充颜色

angularjs

编辑Png图像例如,更改特定区域并在该区域填充颜色。

我想更改仅图像选择区域的颜色。就像第一个用户选择一种颜色,然后他选择一个图像一样,之后他可以用所选颜色更改图像颜色的特定区域。

之后,他也可以保存该图像,这可能吗?像Color公司的网站使用这种东西。

像下面的URL https://www.sherwin-
williams.com/visualizer#/active


阅读 329

收藏
2020-07-04

共1个答案

一尘不染

演示:

整页:https : //angularjs-
rj88cu.stackblitz.io/

代码:https//stackblitz.com/edit/angularjs-
rj88cu

说明:

编辑器是一个svg,其中包含背景图像和<image>和区域,因为<path>两者都是从editor.imageUrl和创建的editor.areas

要下载,

  1. 背景图像绘制在画布上
  2. SVG(不带<image>)被转换为dataUrl,然后在画布上绘制
  3. 画布转换为dataUrl以进行下载

为什么首先不使用canvas而不是svg?

因为鼠标交互很难在画布中实现,并且像DOM元素(悬停伪类,单击事件等)之类的工作在嵌入式svg中要容易得多

我还假设您想要angularjs,因为您已经对其进行了标记(即使您未在问题中提及)

此外,代码中还有很多不良做法,例如编辑器不是组件,也不是对input[type=color]Shadow
DOM进行样式设置(可以使用一些colorpicker插件代替)

PS:告诉我是否需要更改

2020-07-04