Возможно ли оживить фильтр изображений в Fabric.js? Например, фильтр «pixelate».Можно ли анимировать фильтр в Fabric.js?
4
A
ответ
1
Я решил это так же, как демо. К сожалению, фильтры не могут быть анимированы - им нужно слишком много времени на обработку.
Вот мой код:
image = ... //Image, where the filter should be applied
var filter = new fabric.Image.filters.RemoveWhite({
threshold: 0,
distance: 140
});
image.filters.push(filter);
image.applyFilters(canvas.renderAll.bind(canvas));
animate(image,1, 400); //Start the Animation
function animate(image,value, stop){
value += ((stop-value)*0.02); //Change the threshold-value
if (image.filters[0]) {
image.filters[0]['threshold'] = value;
console.log(value);
image.applyFilters(canvas.renderAll.bind(canvas)); //Start creating the new image
if(value<stop-100){
setTimeout(function(){act(image,value,stop);},1);
}
}
}
Я знаю, что код не является наиболее эффективным, но это работает. И вы можете видеть, что фильтры Animating потребляют слишком много времени.
(я тестировал с 1920x1080px изображения, может быть, вы можете использовать его с меньшими изображениями)
+0
Использование' fabric.util.requestAnimFrame' вероятно, будет более эффективным (вместо ручного рекурсивного 'setTimeout') – kangax
0
Вот обновленная версия для фильтра яркости
var brightnessValue = 0.9;
var brightnessFilter = new fabric.Image.filters.Brightness({
brightness: brightnessValue
});
fabricImage.filters.push(brightnessFilter);
fabric.util.requestAnimFrame(function brightnessFilterAnimation() {
brightnessValue = brightnessValue - 0.04;
brightnessFilter.brightness = brightnessValue;
fabricImage.applyFilters();
if (brightnessValue > 0) {
fabric.util.requestAnimFrame(brightnessFilterAnimation);
}
});
Смежные вопросы
- 1. Можно ли анимировать путь в fabric.js?
- 2. Можно ли анимировать UIImage?
- 3. Можно ли анимировать CGContextDrawPath
- 4. Можно ли анимировать NSTextField
- 5. Можно ли анимировать Window.scrollTop
- 6. Fabric.js - Как анимировать из спрайта листа
- 7. Android, можно ли анимировать TextView.setGravity()?
- 8. Можно ли заполнить многоугольник рисунком, используя Fabric.js?
- 9. В {N} можно ли анимировать изображение backgroundPosition?
- 10. Можно ли анимировать каждое письмо отдельно?
- 11. Можно ли анимировать -webkit-text-fill-color?
- 12. Можно ли анимировать ng-переключатель Angular 2
- 13. полимер: можно ли анимировать шаблон-если?
- 14. Можно ли анимировать вкладыши и удаленные изгибы?
- 15. Fabric.js: Как применить фильтр для всего холста?
- 16. Как можно анимировать изображение
- 17. Можно ли использовать фильтр() в шаблоне django?
- 18. можно ли добавить фильтр в highcharts?
- 19. В jquery можно ли дважды прокручивать фильтр?
- 20. Можно ли анимировать размер растягиваемого изображения кнопки в Cocoa Touch?
- 21. В Python 3 (tkinter) можно ли анимировать кадр?
- 22. Анимационный снимок в Fabric.js
- 23. Можно ли инициализировать фильтр после сервлета?
- 24. Можно ли создать интернет-фильтр на Java?
- 25. Можно ли применить фильтр на SKEmitterNode?
- 26. Можно ли переопределить только один фильтр авторизации?
- 27. Можно ли вернуть фиксированный цифровой фильтр?
- 28. Можно ли анимировать вставки, удаления и позиции позиции flexbox?
- 29. Можно ли анимировать вершины без использования морфов или шейдеров?
- 30. Можно ли анимировать несколько объектов с помощью одного таймера?
Как именно вы хотите, чтобы оживить фильтр ? Какой параметр должен меняться в течение определенного периода времени? – kangax
Например, яркость фильтра для медленного изменения яркости – Faradey
и где вы можете задать вопросы по-русски – Faradey