#FILTER.js
A JavaScript Library for Image/Video Processing and Filtering using HTML5 APIs
This is a library for filtering images/video in JavaScript using HTML5 features like Canvas, WebWorkers, WebGL and SVG (in progress).
- filter.js
- filter.min.js
- filter.plugins.js
- filter.plugins.min.js
- filter.bundle.js, filter+plugins+dependencies
###Contents
###Live Examples
- Image Processing with Filter.js
- Video Processing with Filter.js
- Sound Visualization with Filter.js
- Filter.js with Three.js
###Browser Support
###Credits
Some filters code has been adapted from open source libraries (mostly flash and java, plus a couple from javascript libraries), see the comments in the code for details.
###Features
The library dependencies are:
- Classy.js micro Object-Oriented framework.
- Asynchronous simple manager for async/parallel tasks.
The framework defines an Image Proxy class, which represents an Image, a Color Utilities Class and 8 generic Filter types plus various Plugins (with support for parallel processing transparently)
- AbstractFilter
- ColorMatrixFilter (analogous to the ActionScript filter)
- TableLookupFilter
- ConvolutionMatrixFilter (analogous to the ActionScript filter)
- DisplacementMapFilter (analogous to ActionScript filter)
- GeometricMapFilter
- MorphologicalFilter
- StatisticalFilter (previously called NonLinearFilter)
- CompositeFilter (an abstraction of a container for multiple filters)
Parallel Workers Support (support parallel procesing/filtering with filter workers in an intuitive and transparent way)
Extension by Plugins / Inline Filters
Image Blending Modes (analogous to PhotoShop blend modes)
Each generic filter is prototype but it also includes basic implementation filters like grayscale , colorize , threshold , gaussBlur , laplace , emboss , etc..
TIP: You can create your custom build of the library with the filters/plugins you choose. Each filter and plugin is independent and can be used in a mix-n-match manner, as long as the core classes are always included. Change the dependencies file(s) to include your own selection of filters and plugins for your custom build
###Todo
- add WebGL support for various pre-built and custom Filters (in progress)
- add SVG Filters interface support for various pre-built and custom Filters (in progress)
- add CSS Filters interface support for various pre-built and custom Filters (in progress)
- add support for Parallel Processing using Web Workers and/or Asynchronous Processing [DONE partially]
- make convolutions/statistics faster [DONE partially]
- use fixed-point arithmetic, micro-optimizations where possible [DONE partially]
- add caching of filter parameters where applicable [DONE partially]
- add more filters (eg split/combine/adaptive/nonlinear etc..) [DONE partially]
- add 2d-fft routines, frequency-domain filtering
- allow to work in Node
- increase support/performance for Opera, IE [DONE partially]
URL Nikos Web Development
URL FILTER.js blog post
URL WorkingClassCode