Я использую Fabric.js
. Для изображений я хочу предоставить пользователям image filter
.Создать динамический объект javascript
Ниже приведен код для создания нового фильтра Gayscale:
var filter = new fabric.Image.filters.Grayscale();
canvas.getActiveObject().filters=[];
canvas.getActiveObject().applyFilters(_canvasObject.renderAll.bind(_canvasObject));
canvas.getActiveObject().filters.push(filter);
canvas.getActiveObject().applyFilters(_canvasObject.renderAll.bind(_canvasObject));
Для других фильтров также код почти тот же, который повторяется для первой линии, за исключением.
Я предоставляю флажки для пользователей, чтобы выбрать Фильтр. Я перебираю все checkBoxes
и добавляю event listener
для применения нового фильтра. Поэтому в приведенном ниже коде я хочу динамически создать объект фильтра.
var filterClickHandler = function(selectedFilter){
return function(){
applySelectedFilter(selectedFilter);
}
}
function applySelectedFilter(selectedFilter){
//selectedFilter may be Grayscale,Sepia,etc...
// var filter = new fabric.Image.filters.Grayscale();
var filter = new fabric.Image.filters.selectedFilter();
}
В любом случае, чтобы это сделать?
Можете ли вы предоставить скрипку для этого? –