从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