FILTER.js
一个纯JavaScript的图片/视频处理、滤镜和计算机视觉库
这是一个使用纯JavaScript进行图片/视频处理的库,利用了HTML5特性如 Canvas
,Web Workers,WebAssembly 和 WebGL 或者在Node.js中使用的替代品(例如 CanvasLite
,node-canvas
,node-gl
,node processes
)。
版本1.11.0进行中 (396kB缩小版)
目录
现场示例
- 使用
Filter.js
进行图片处理(同步/并行/WebGL/WASM) - 使用
Filter.js
进行视频处理(同步/WebGL/WASM) - 使用
Filter.js
进行声音可视化(Trioptic) - 使用
Filter.js
将自己卡通化 - 将
Filter.js
与Three.js
结合 - 在
Node.js
中使用Filter.js
浏览器支持
鸣谢
部分滤镜代码改编自开源库,详情见代码中的注释。
- Java图片处理库
- AS3图片处理库
- OpenCV
- AS3 ColorMatrix by @GSkinner
- Simplex Noise 和 Perlin Noise by Stefan Gustavson
- HAAR.js
- glfx.js
功能
该框架定义了一个 Image
类,代表一个图像的代理,以及一些实用程序如 Color
类和14种通用 Filter
类型,加上各种插件和额外的滤镜(同时支持**(低级)CPU和GPU并行处理**,可在 浏览器
和 nodejs
中透明地使用)
- AbstractFilter
- ColorTableFilter
- ColorMatrixFilter(类似ActionScript滤镜)
- ColorMapFilter
- AffineMatrixFilter
- GeometricMapFilter
- DisplacementMapFilter(类似ActionScript滤镜)
- ConvolutionMatrixFilter(类似ActionScript滤镜)
- MorphologicalFilter
- StatisticalFilter
- BlendFilter
- DimensionFilter
- CompositeFilter(包含多个滤镜的抽象容器)
- InlineFilter(在运行时使用自定义函数动态创建内联滤镜)
- FrequencyFilter(频域滤镜)
- 额外滤镜(覆盖更广泛功能和使用案例的额外滤镜)
每种通用滤镜都是原型化的,同时也包括许多具体滤镜实现,例如 grayscale
,colorize
,threshold
,gaussBlur
,laplace
,emboss
,gamma
,twirl
等等。(取决于滤镜类型)
浏览器和nodejs的CPU并行处理:支持使用滤镜Workers的直观和透明的CPU并行处理,见示例。
浏览器和nodejs的GPU并行处理:支持使用GLSL滤镜的直观和透明的GPU/WebGL并行处理,见示例。
透明地混合CPU/GPU滤镜
浏览器和nodejs的快速CPU汇编代码:支持汇编编码的滤镜,见示例。
Map/Reduce功能
图像混合模式(类似SVG混合模式)
提示: 您可以创建带有自选滤镜/插件的自定义库版本。 每个滤镜和插件是独立的,可以混合使用,只要核心类始终包含。 更改依赖文件以包含您自己选择的滤镜和插件用于自定义构建
待办事项
- 尽可能制作滤镜的WASM版本 [已完成]
- 尽可能制作滤镜的GLSL版本 [已完成]
- 使卷积/统计更快 [部分完成]
- 增加对
Node.js
的完全支持 [已完成] - 增加对使用
Web Workers
和/或异步处理
的并行处理
支持 [已完成] - 使用定点算法,在可能情况下进行微优化 [已完成]
- 在适用情况下添加滤镜参数缓存 [已完成]
- 提升
Opera
,IE
的性能 [已完成]
另请参见:
- Abacus 先进的组合数学和代数数论符号计算库,支持JavaScript, Python
- Plot.js 简单小型的库,可绘制函数图和各种简单图表,支持渲染到Canvas、SVG和纯HTML
- HAAR.js 基于Haar级联的图像特征检测JavaScript库(Viola-Jones-Lienhart算法)
- HAARPHP 基于Haar级联的图像特征检测PHP库(Viola-Jones-Lienhart算法)
- FILTER.js 视频和图像处理及计算机视觉纯JavaScript库(浏览器和node)
- Xpresion 一个简单灵活的表达式解析引擎(支持自定义函数和变量),基于 GrammarTemplate,支持PHP, JavaScript, Python
- Regex Analyzer/Composer 正则表达式分析和组合工具,支持PHP, JavaScript, Python
- GrammarTemplate 基于语法的模板工具,支持PHP, JavaScript, Python
- codemirror-grammar 将JSON格式的正规语法转换为CodeMirror编辑器的语法高亮解析器
- ace-grammar 将JSON格式的正规语法转换为ACE编辑器的语法高亮解析器
- prism-grammar 将JSON格式的正规语法转换为Prism代码高亮器的语法高亮解析器
- highlightjs-grammar 将JSON格式的正规语法转换为Highlight.js代码高亮器的语法高亮模式
- syntaxhighlighter-grammar 将JSON格式的正规语法转换为SyntaxHighlighter代码高亮刷
- SortingAlgorithms JavaScript中的排序算法实现
- PatternMatchingAlgorithms JavaScript中的模式匹配算法实现
- CanvasLite 一个纯JavaScript实现的HTML画布
- Rasterizer 绘制和填充线条、矩形、曲线和路径,无需画布
- Gradient 创建线性、径向、圆锥和椭圆渐变以及图像图案,无需画布
- Geometrize JavaScript的计算几何和渲染库
- MOD3 JavaScript的3D修改器库
- css-color 一个简单的类,用于解析和操作各种格式的颜色