Я пытаюсь добавить контраст как фильтр в KineticJS (я знаю, это не фильтр технически). Он работает, но я хочу добавить модификатор contrast()
(например, noise()
для фильтра шума и т. Д.).расширение KineticJS - настраиваемый фильтр
Вот моя функция (после включения KineticJS 5.0.1 библиотеки):
(function() {
Kinetic.Filters.Contrast = function(imageData) {
var data = imageData.data,
len = data.length,
i,
adjust = this.contrast(),
x = [];
//[cut] processing, not important here
};
Kinetic.Factory.addGetterSetter(Kinetic.Node, 'contrast', 0, null, Kinetic.Factory.afterSetFilter);
})();
Как вы можете видеть, Kinetic.Factory.addGetterSetter
должен предоставить мне contrast()
модификатор, но это не делает. Когда я запускаю код, resuls является TypeError: imgs.contrast is not a function
:
imgs.filters([Kinetic.Filters.Contrast]);
imgs.contrast(30);
Что я делаю неправильно?
// обновление
Мое временное решение: просто поставить свою функцию в kineticJS файл. Не идеально, но он работает.
Технически, ваше решение в порядке, но у меня на моем холсте много динамически добавленных объектов. Так что это довольно сложно реализовать, и я думаю, что в моем случае производительность будет недостаточной (но я не делал никаких тестов). Мое временное решение: просто поместите функцию в файл kineticJS. Не идеально, но он работает. – czachor