我最近使用人脸检测算法,我想在检测算法运行时在画布上添加一些过滤器。如图 1 所示,我创建了一个模式,它可以与示例或自定义过滤器一起使用(Caman.js 库)
进行选择后,我想在画布中添加过滤器或取消过滤器。有2个选项:
1) 确认按钮:
/* PREPARE ARRAYS */
//SAMPLE FILTERS (vintage = true sunrise = true)
var array1 = [vintage, sunrise, .../* selected values*/ ];
//CUSTOM FILTERS (vintage = 0.4, sunrise = 0.8)
var array2 = [0.4,0.8, .../* selected values*/ ];
2) 取消按钮:
/* RESETS ARRAYS */
array1.length = 0;
array2.length = 0;
现在我尝试处理一个图像元素,效果很好,但只能通过单独检查所有元素。添加的过滤器越多 - 应该做出更多的 if/else-if 语句:
if(array1.contains("vintage")){
Caman('#myIcon', function(){
this.vintage().render(); /*.vintage & anyFilter is in Caman.js API */
});
}else if(array1.contains("sunrise")){
//.....etc
}
我的问题:
有什么方法可以在特定库(Caman.js)中传递字符串值,因为所有过滤器都是库中的函数,而 something.render() 显然不起作用?
例如:
function apply_Filters (*MY_FILTER_DATA*) {
Caman('#myIcon', function(){
this.*MY_FILTER_DATA*.render();
}