从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等效内容?
答案 0 :(得分:1)
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