CamanJS 过滤器到 Photoshop 曲线

CamanJS Filters to Photoshop Curves

有没有办法获取 CamanJS 滤镜的 photoshop 曲线?

例如:

Caman.Filter.register("hemingway", function() {
this.greyscale();
this.contrast(10);
this.gamma(0.9);
this.newLayer(function() {
  this.setBlendingMode("multiply");
  this.opacity(40);
  this.copyParent();
  this.filter.exposure(15);
  this.filter.contrast(15);
  return this.filter.channels({
    green: 10,
    red: 5
  });
});
this.sepia(30);
this.curves('rgb', [0, 10], [120, 90], [180, 200], [235, 255]);
this.channels({
  red: 5,
  green: -2
});
return this.exposure(15);
});

我尝试使用那些曲线值,但似乎不一样。

有什么见解吗?

谢谢。

主要原因是 camanjs 的 curve() 方法使用贝塞尔曲线,而 Photoshop 使用基数样条或更简单的 Catmull-Rom 样条(通过实际点的样条)。

因此,将贝塞尔曲线控制点转换为基数样条曲线也很复杂,反之亦然。

您可以制作一个映射界面,以便绘制贝塞尔曲线,然后为基数样条曲线提供点,四处移动它们,使它们与贝塞尔曲线制作的曲线紧密匹配,并将这些点用于 Photoshop。我做了一个 cardinal spline implementation here,如果你觉得这可能是解决它的一种方法,可能还有其他人在那里。

但一般来说,您必须在这两种类型之间进行转换。

更新

This code (not JS but C) (FitCurves.c) 可能会也可能不会帮助您进行贝塞尔曲线拟合。 C 和 JS 在语法方面密切相关,因此应该很容易翻译。

希望对您有所帮助。