【发布时间】:2015-10-01 23:58:10
【问题描述】:
我正在尝试将用 AS3 编写的内容转换为 JavaScript,而 AS3 应用程序使用 Flash 的内置 Blur Filter
有谁知道这使用了什么模糊算法或如何在 JavaScript 中复制它?
谢谢
【问题讨论】:
标签: javascript algorithm actionscript-3 flash blur
我正在尝试将用 AS3 编写的内容转换为 JavaScript,而 AS3 应用程序使用 Flash 的内置 Blur Filter
有谁知道这使用了什么模糊算法或如何在 JavaScript 中复制它?
谢谢
【问题讨论】:
标签: javascript algorithm actionscript-3 flash blur
就像他们在文档中所说的那样,这是一种Gaussian 风格模糊:
当质量属性设置为高时,它近似于高斯 模糊滤镜
它是高斯滤波器/魏尔斯特拉斯变换风格的高度优化版本,尤其是在使用 2 x/y 偏移的幂时,因为您可以将其实时应用于视频,因此您不会得到准确的结果是一个非 Flash 应用程序,但您可以真正接近,没有人会知道其中的区别。
在 html/css/javascript 中有 很多 方法可以进行高斯模糊。有一些方法通过 CSS 中花哨的阴影技术,使用 HTML5 画布并应用自定义过滤器,通过字节数组对位图进行 javascript 处理等......有些具有基于跨浏览器的限制,有些具有 CPU 处理问题等。 google/bing 是您搜索人们已经开发的不同技术以及他们遇到的优缺点的朋友。
我为一个快速的 HTML5 项目抓取了以下一个:
Mario Klingemann 创建了一个“几乎 JavaScript 中的高斯模糊算法。
http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html http://badassjs.com/post/1298940200/stackblur
以下是我用来比较自己的图像,它与我使用的 Flash 的 BlurFilter “足够接近”。 (StackBlur 生成的图像稍微暗一点,假设他跳过了一些会导致例程变慢的归一化)
【讨论】: