CamanJS中给出以下过滤器:

Caman.Filter.register("lomo", function(vignette) {
    if (vignette == null) {
      vignette = true;
    }
    this.brightness(15);
    this.exposure(15);
    this.curves('rgb', [0, 0], [200, 0], [155, 255], [255, 255]);
    this.saturation(-20);
    this.gamma(1.8);
    if (vignette) {
      this.vignette("50%", 60);
    }
    return this.brightness(5);
  });


如何将该过滤器转换为KineticJS等效项?

最佳答案

CamanJS和KineticJS过滤器的实现非常不同。

KineticJS过滤器可一次处理像素数据。

CamanJS使用子系统来逐步更改图像(子系统== this.brightness,this.exposure等)。

因此,没有简单的方法可以将CamanJS过滤器转换为KineticJS过滤器

为此,您必须将许多CamanJS子系统重构并嵌入到KineticJS中。

您可以这样做,因为CamanJS和KineticJS都是具有自由许可的开源软件,但这意味着要从CamanJSs重构以下至少子系统(及其依赖项)并将其添加到KineticJS中:https://github.com/meltingice/CamanJS/blob/master/dist/caman.full.js


亮度,
接触,
曲线
饱和,
伽玛


也许更好的主意是在内存画布上使用CamanJS应用过滤器。然后,您可以使用该内存中的画布作为Kinetic.Image的图像源。这是有关操作方法的链接:KineticJS canvas modified by CamanJS

09-18 10:53