#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).
version 0.7-alpha2
- filter.js
- filter.min.js
- filter.plugins.js
- filter.plugins.min.js
- filter.bundle.js, filter+plugins+dependencies
see also:
- Contemplate a light-weight template engine for Node/JS, PHP, Python, ActionScript
- Tao A simple, tiny, isomorphic, precise and fast template engine for handling both string and live dom based templates
- ModelView a light-weight and flexible MVVM framework for JavaScript/HTML5
- ModelView MVC jQueryUI Widgets plug-n-play, state-full, full-MVC widgets for jQueryUI using modelview.js (e.g calendars, datepickers, colorpickers, tables/grids, etc..) (in progress)
- Dromeo a flexible, agnostic router for Node/JS, PHP, Python, ActionScript
- PublishSubscribe a simple and flexible publish-subscribe pattern implementation for Node/JS, PHP, Python, ActionScript
- Regex Analyzer/Composer Regular Expression Analyzer and Composer for Node/JS, PHP, Python, ActionScript
- Xpresion a simple and flexible eXpression parser engine (with custom functions and variables support) for PHP, Python, Node/JS, ActionScript
- Dialect a simple cross-platform SQL construction for PHP, Python, Node/JS, ActionScript (in progress)
- Simulacra a simulation, algebraic, probability and combinatorics PHP package for scientific computations
- Asynchronous a simple manager for async, linearised, parallelised, interleaved and sequential tasks for JavaScript
###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.
- Image Processing Library in Java (http://www.jhlabs.com/ip/filters/)
- AS3 Image Processing Library (http://je2050.de/imageprocessing/)
- AS3 ColorMatrix by GSkinner (http://gskinner.com/blog/archives/2007/12/colormatrix_cla.html)
- JSManipulate (https://github.com/JoelBesada/JSManipulate)
- glfx.js (https://github.com/evanw/glfx.js)
Some image processing theory, basics and tutorials:
- digital image filtering (with emphasis on imagemagick)
- image processing basics
- fundamentals of image processing
- fundamentals of image processing
- image filtering basics for machine vision
###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, Image Loader classes, 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 other image formats, e.g .TGA, .HDR/.RGBE, .BMP etc.. (todo)
- add 2d-fft routines, frequency-domain filtering (todo)
- add full support for Node.js (todo)
- 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]
- increase support/performance for Opera, IE [DONE partially]
URL Nikos Web Development
URL FILTER.js blog post
URL WorkingClassCode






