Javascript 更改fabric.js中图像的颜色

Javascript 更改fabric.js中图像的颜色,javascript,fabricjs,Javascript,Fabricjs,最近我开始探索fabric.js。我想通过从颜色选择器中选择颜色来更改图像的颜色 我从一开始。通过查看fabric.js的文档,我推断(我可能错了)fabric使用HSL颜色模型。问题是我搜索的任何地方,色调范围都在0到360度之间,但in-fabric期望值在-1到1之间。为了解决这个问题,我计算了色调的sin,使其介于-1和1之间,但这会同时改变颜色 如果有人指出我缺少什么,那就太好了。我正在使用转换十六进制到HSL。唯一的区别是我通过Math.sin(h*Math.PI/180)计算色调的

最近我开始探索fabric.js。我想通过从颜色选择器中选择颜色来更改图像的颜色

我从一开始。通过查看fabric.js的文档,我推断(我可能错了)fabric使用HSL颜色模型。问题是我搜索的任何地方,色调范围都在0到360度之间,但in-fabric期望值在-1到1之间。为了解决这个问题,我计算了色调的
sin
,使其介于-1和1之间,但这会同时改变颜色


如果有人指出我缺少什么,那就太好了。我正在使用转换十六进制到HSL。唯一的区别是我通过
Math.sin(h*Math.PI/180)
计算色调的sin,使其进入-1到1的范围。

如果这个库期望一个标准化范围等于[-180º,180º]或[-π,π],你不能用正弦或余弦来解析它。对于不同的角度(sin(45)=sin(135)),这两个函数可以给出相同的结果,而这些角度表示不同的色调(黄色和灰绿色)

您可以先将输入转换为[-180º,180º]范围:

hue = hue % 360; //handle inputs greater than 360 degrees
let displacedHue = (hue > 180) ? hue - 360 : hue
然后将其标准化为[-1,1]:

let normalizedHue = displacedHue/180