使用 Camanjs 应用多个更改的正确方法

Proper way of applying multiple changes with Camanjs

在 CamanJS 上有一个添加一些效果和新层的例子:

Caman("#image", function () {
  // We can call any filter before the layer
  this.exposure(-10);

  // Create the layer
  this.newLayer(function () {
    // Change the blending mode
    this.setBlendingMode("multiply");

    // Change the opacity of this layer
    this.opacity(80);

    // Now we can *either* fill this layer with a
    // solid color...
    this.fillColor('#6899ba');

    // ... or we can copy the contents of the parent
    // layer to this one.
    this.copyParent();

    // Now, we can call any filter function though the
    // filter object.
    this.filter.brightness(10);
    this.filter.contrast(20);
  });

  // And we can call more filters after the layer
  this.clip(10);
  this.render();
});

它工作正常。我尝试通过使用其他参数再次调用此代码来添加第二层,以显示我之前添加过的图层,但第一层消失了。

网站上也有添加单一效果的例子。他们很棒,但他们一次只调用一个过滤器。

我想完成的是,根据用户设置,添加例如一层、两层,或应用不透明度和新层。

而且我希望它每次都在基础图像上工作,而不是上次过滤的图像效果。

那么,使用 CamanJS 根据用户设置更改具有多个滤镜和图层的基本图像的正确方法是什么?

您现在可能已经明白了,但是您可以在渲染后调用 "this.revert(false)" 以确保您正在编辑基本图像。

您可以通过调用进程中的所有效果并使用 if/then 语句确定用户输入来添加多个效果。例如=

点击按钮时,x+=1 如果 (x%2===0){this.yourfilter();}

虽然我才刚刚开始。