首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用StackBlur实现平滑的Javascript动画

使用StackBlur实现平滑的Javascript动画
EN

Stack Overflow用户
提问于 2011-08-12 23:22:49
回答 1查看 3.4K关注 0票数 3

http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html

如果我移动这个页面上的滑块,模糊效果会非常平滑。

但是如果我试着让动画自动化:

代码语言:javascript
复制
var speed = 1250;
var blur = 100;
var interval = speed/blur;

setInterval(function(){
  blur--;
  stackBlurImage(image, canvas, blur);
}, interval);

这些步骤非常明显,甚至在高速下都不能工作。

有没有人能给出一个替代方案呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-12 23:42:20

预渲染不同的模糊级别,将其存储并作为帧循环。无论stackBlurImage做什么,都有可能做得不够快,看起来不像动画。

编辑:我收回这句话,你就是这么做的:http://jsfiddle.net/nwellcome/27QUM/在我看来很棒,你用的是什么浏览器?

编辑2:在此提琴中尝试第二种方法:http://jsfiddle.net/nwellcome/27QUM/4/,而不是每次将模糊半径减少1,而是将fps固定在setInterval可以处理的位置,并操纵每帧减少模糊半径的量。

代码语言:javascript
复制
var fps = 30;
var blur = 100;
var blurTime = 0.5; // seconds
var interval = 1000 / fps; 
var step = blur/ (fps * blurTime);

var anim = setInterval(function(){
    blur-= step;
    if (blur < 0) {
        clearInterval(anim);
    }
    stackBlurImage(image, canvas, blur);
}, interval);

blur编辑3:只是为了好玩,使用HTML5文件API,你可以上传你自己的图像到http://jsfiddle.net/nwellcome/27QUM/12/

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7042371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档