如果我有一个应用过滤器的图像,例如 Lomo 过滤器,有没有办法让它成为当前的 Caman 实例?
意思是,如果我想在应用了滤镜的图像上调整亮度,并使用this.revert();
它来重置亮度,我希望它恢复到我刚刚应用的带有滤镜的画布。
这可能吗?
我在尝试应用许多效果时做噩梦,一次只能应用一个(预设过滤器除外),并通过...
如果我有一个应用过滤器的图像,例如 Lomo 过滤器,有没有办法让它成为当前的 Caman 实例?
意思是,如果我想在应用了滤镜的图像上调整亮度,并使用this.revert();
它来重置亮度,我希望它恢复到我刚刚应用的带有滤镜的画布。
这可能吗?
我在尝试应用许多效果时做噩梦,一次只能应用一个(预设过滤器除外),并通过...
如果我理解,您想应用过滤器(“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)
});
我不认为您的要求是“开箱即用”的。
如果我理解正确,您想应用过滤器并使用其他效果,如亮度和对比度等,
我制作了一些代码,可以根据您的需要工作
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'}
];
因此,每次您添加任何预设或更改任何效果值时,我都会更改变量中的值并再次渲染画布
它对我来说工作得很好
让我知道您是否关心其他问题