用Javascript实现让Canvas变模糊的效果

做Canvas应用的开发,可能会碰到需要使画面模糊的需求。容易想到三种方式:1、半透明模糊 PNG 覆盖的方式,这种方式简单易行,但是不能灵活控制模糊程度。2、CSS方式,比如用-webkit-filter:blur(10px); 的形式,也极其简单,可控制模糊程度,但是这种方式的效果很差很差,中心模糊度高,四周模糊度低,而且整个元素外围会有光晕效果,已经不是真正意义的模糊了。3、
摘要由CSDN通过智能技术生成

做Canvas应用的开发,可能会碰到需要使画面模糊的需求。

容易想到三种方式:

1、半透明模糊 PNG 覆盖的方式,这种方式简单易行,但是不能灵活控制模糊程度。

2、CSS方式,比如用-webkit-filter:blur(10px); 的形式,也极其简单,可控制模糊程度,但是这种方式的效果很差很差,中心模糊度高,四周模糊度低,而且整个元素外围会有光晕效果,已经不是真正意义的模糊了。

3、Javascript方式更新画布,最灵活,效果最好,自己写代码就复杂一点,但是已经有现成的js库可以使用了,简单调用函数即可。这个也是本文要推荐的。

这个js库的名称叫做: StackBlur, 目前的版本是0.5

有人可能担心用js处理整个画布会因为大量运算导致效率问题,经我测试,运行demo相当流畅,拖动滑块,画面一点不卡。

这个库提供了3个函数:

stackBlurImage( sourceImageID, targetCanvasID, radius, blurAlphaChannel );    //用于将图片模糊绘制到canvas
stackBlurCanvasRGBA( targetCanvasID, top_x, top_y, width, height, radius );  //用于对Canva

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值