0

CamanJS フィルターのフォトショップ曲線を取得する方法はありますか?

例えば:

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);
});

これらの曲線の値を使用しようとしましたが、同じではないようです。

洞察はありますか?

ありがとうございました。

4

1 に答える 1

1

主な理由は、camanjs がその curve() メソッドにベジエ曲線を使用しているのに対し、Photoshop はカーディナル スプラインまたはより単純な Catmull-Rom スプライン (実際のポイントを通過するスプライン) のようなものを使用しているためです。

このため、ベジエ制御点をカーディナル スプラインに変換することも、その逆も複雑になります。

ベジエを描画できるようにマッピング インターフェイスを作成し、カーディナル スプラインのポイントを指定し、ベジエによって作成された曲線に厳密に一致するようにそれらを移動し、それらを Photoshop で使用できます。ここでカーディナル スプラインの実装を作成しました。これが解決方法の 1 つになると思われる場合は、他にもあるかもしれません。

ただし、一般的には、2 つの型の間で変換する必要があります。

アップデート

このコード (JS ではなく C) (FitCurves.c)は、ベジエのカーブ フィッティングに役立つ場合とそうでない場合があります。C と JS は構文的に密接に関連しているため、簡単に翻訳できるはずです。

お役に立てれば。

于 2015-02-18T05:22:42.230 に答える