用Javascript实现让Canvas变模糊的效果
来源:互联网 发布:jquery.ajaxsubmit.js 编辑:程序博客网 时间:2024/06/04 17:57
做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 ); //用于对Canvas矩形区域执行RGBA模糊
stackBlurCanvasRGB( targetCanvasID, top_x, top_y, width, height, radius ); //用于对Canvas矩形区域执行RGB模糊,不考虑Alpha值
下面是效果图。第一个图是原图,第二个图是模糊半径为32的效果。
DEMO网址 StackBlue Demo
作者:Mario Klingemann
算法说明 StackBlur algorithm.(英文的)网址2
下载源文件: StackBlur v0.5
- 用Javascript实现让Canvas变模糊的效果
- 用javascript怎样实现图片模糊效果
- canvas的drawimage使图片失真变模糊的解决方法
- 一个实现让整个网页变灰的javascript 函数
- HTML5 vedio标签与canvas的结合实现视频同步模糊效果
- iOS 模糊效果的实现
- iOS模糊效果的实现
- javascript canvas 实现下雪效果 圣诞节专用
- iOS开发下拉放大,从模糊变清晰的效果
- canvas实现刮刮乐的效果
- 如何让一个2D图片实现一个模糊效果
- 用 Renderscript 实现高效率的图片模糊效果
- Baffle.js – 用于实现文本模糊效果的 JavaScript 库
- Baffle.js – 用于实现文本模糊效果的 JavaScript 库
- Baffle.js – 用于实现文本模糊效果的 JavaScript 库
- Canvas 在高清屏下绘制图片变模糊的解决方法
- 解决html5<canvas>标签像素变大,图片变模糊的情况
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Qt自动产生的槽函数
- 百度之星05-08年试题
- delphi XE2中安装ehlib5.6
- 使用Bash进行Socket通信
- 排序(四)——关于归并排序
- 用Javascript实现让Canvas变模糊的效果
- APP widget初学 (一)
- HDU_1804_Deli Deli (字典树)
- 在Android中使用ContentResolver查询系统数据库时使用外键查询与distinct的小技巧
- android号码匹配位数修改
- VC判断窗口最小化或最大化函数
- DEV 通过配置工具可以不用 pause 语句暂停
- ORA-24399:invalid number of connections specified
- 触发器