9

Lomo フィルターなどのフィルターを適用した画像がある場合、それを現在の Caman インスタンスにする方法はありますか?

つまり、フィルターを適用した画像の明るさthis.revert();をいじり、明るさをリセットするために使用したい場合は、フィルターを適用したキャンバスに戻す必要があります。

これは可能ですか?

一度に 1 つのみ (プリセット フィルターを除く) の多くの効果を適用し、状態を保持しようとする悪夢に悩まされています...

4

2 に答える 2

1

私が理解している場合は、例のページに示されているようにフィルター ("Lomo") を適用し、いくつかのプロパティ (明るさなど) をいじってから、変更を "Lomo" フィルターに戻しますか?

フィルター ("Lomo") をもう一度クリックしてみませんか?

編集:おそらくガイドを見て、フィルターのようなデフォルト値で独自のメソッドを実装する必要があります。

u.Filter.register("lomo", function (D) {
        if (D == null) {
            D = 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 (D) {
            this.vignette("50%", 60)
        }
        return this.brightness(5)
    });

あなたの要件は「箱から出して」来るとは思いません。

于 2013-06-10T09:43:20.360 に答える
0

私があなたを正しく理解していれば、フィルターを適用して、明るさやコントラストなどの他の効果を試してみたいと思い
ます。必要に応じて機能するコードをいくつか作成しました。

 Caman('#canvas-camanImage',"./../media/caman.png", function () {
        this.revert(false);
        for(var i = 0 ;i<selectedPresets.length;i++){
            this[selectedPresets[i]]();
        }
        for(var key in effect){
            this[key](effect[key].value);
        }
        this.render(function () {
        });

上記のコードでは、明るさのコントラストなどのすべての効果を効果変数に保存していますeffect = { brightness : { min : -100, max: 100, value : 0 }, contrast : { min : -100, max: 100, value : 0 }, saturation : { min : -100, max: 100, value : 0 } };

および配列内のプリセット

presets = [
    {filter:'vintage',name : 'Vintage'},
    {filter:'lomo',name:'Lomo'},
    {filter: 'clarity', name:'Clarity'},
    {filter:'sinCity', name:'Sin City'}
    ];

したがって、プリセットを追加したり、エフェクト値を変更したりするたびに、変数の値を変更してキャンバスを再度レンダリングし ています。私
にとっては非常にうまく機能してい
ます。

于 2019-01-18T08:33:22.043 に答える