Canvas模糊化处理图片、毛玻璃处理图片之stackblur.js
Canvas实现毛玻璃效果解决方式1:使用stackblur.js
在Android系统中实现图片的毛玻璃效果比较好用的类库是:Android StackBlur
官方Git地址:https://github.com/kikoso/android-stackblur
在前端Canvas中可以使用StackBlur.js:
Git地址:https://github.com/flozz/StackBlur
简单API说明:
API 调用
下面是针对不同的源(图片或者 Canvas 等)进行 StackBlur 的调用。
图像作为源:
StackBlur.image(sourceImage, targetCanvas, radius, blurAlphaChannel);
- sourceImage:HTMLImageElement或者它的id
- targetCanvas:HTMLCanvasElement或者它的id
- radius:模糊半径
- blurAlphaChannel: 如果你想模糊一个 RGBA 的图像,就将其设置为true(可选,默认 =false)
RGBA Canvas 作为源:
StackBlur.canvasRGBA(targetCanvas, top_x, top_y, width, height, radius);
- targetCanvas:HTMLCanvasElement
- top_x: 要模糊的矩形的左上角的水平坐标
- top_y: 要模糊的矩形的左上角的垂直坐标
- width: 要模糊的矩形宽度
- height: 要模糊的矩形高度
- radius: 模糊半径
RGB Canvas 作为源:
StackBlur.canvasRGB(targetCanvas, top_x, top_y, width, height, radius);
- targetCanvas:HTMLCanvasElement
- top_x: 要模糊的矩形的左上角的水平坐标
- top_y: 要模糊的矩形的左上角的垂直坐标
- width: 要模糊的矩形宽度
- height:要模糊的矩形高度
- radius: 模糊半径
RGBA ImageData 作为源:
StackBlur.imageDataRGBA(imageData, top_x, top_y, width, height, radius);
- imageData: canvas 的ImageData
- top_x:要模糊的矩形的左上角的水平坐标
- top_y: 要模糊的矩形的左上角的垂直坐标
- width: 要模糊的矩形宽度
- height: 要模糊的矩形高度
- radius: 模糊半径
RGB ImageData 作为源:
StackBlur.imageDataRGB(imageData, top_x, top_y, width, height, radius);
- imageData: canvas 的ImageData
- top_x:要模糊的矩形的左上角的水平坐标
- top_y: 要模糊的矩形的左上角的垂直坐标
- width: 要模糊的矩形宽度
- height: 要模糊的矩形高度
- radius: 模糊半径
实例1:
<!--使用Canvas加载图片-->
<canvas id="canvas1" width="300" height="200"></canvas>
<br /><br />
<img id="img1" src="../Images/mm1.jpg" />
<script>
var img1 = document.getElementById('img1');
img1.onload = function () {
//调用模糊处理
StackBlur.image('img1', 'canvas1', 100, true);
}
</script>

实例2:相对完整点
1.添加引用
<link href="//cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<link href="//cdn.bootcss.com/bootstrap-slider/9.4.1/css/bootstrap-slider.css" rel="stylesheet"> <script src="//cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script src="//cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="//cdn.bootcss.com/bootstrap-slider/9.4.1/bootstrap-slider.min.js"></script> <script src="../Js/stackblur.js"></script>
2.HTM和js
<!--使用Canvas加载图片-->
<canvas id="canvas1" width="300" height="200"></canvas>
<br /><br />
<img id="img1" src="../Images/mm1.jpg" />
<br />
<style>
#ex1Slider .slider-selection {
background: #BABABA;
}
</style>
<input id="ex1" data-slider-id="ex1Slider" type="text"
data-slider-min="0" data-slider-max="100" data-slider-step="1"
data-slider-value="100" />
<script>
var img1 = document.getElementById('img1');
img1.onload = function () {
//调用模糊处理
StackBlur.image('img1', 'canvas1', 100, true);
}
//滑动控件
$('#ex1').slider().on('change', function (e) {
var newValue = e.value.newValue;
//调用模糊处理
StackBlur.image('img1', 'canvas1', newValue, true);
});
</script>

Canvas模糊化处理图片、毛玻璃处理图片之stackblur.js的更多相关文章
- StackBlur.js
StackBlur.js 是 Mario Klingemann 创建的一个快速的.接近高斯模糊的效果库. 更多信息: http://incubator.quasimondo.com/processin ...
- 基于html5 canvas 的强大图表插件【Chart.js】
名词解释 Chart.js:是基于html5和canvas的强大图表插件,支持多样的图表形式,柱状线性饼环极地雷达等等: canvas:只兼容到IE9 excanvas.js:强大的第三方兼容插件,可 ...
- FLASH CC 2015 CANVAS (三) flash中写JS调用html中JS的函数,变量
注意 此贴 为个人边“开荒”边写,所以不保证就是最佳做法,也难免有错误! 正式教程会在后续开始更新 首先我们在HTML里的JS里面添加几行代码 我们在FLASH中新建一个元件,并拖入到舞台,在属性面板 ...
- FLASH CC 2015 CANVAS (二)html中写JS调用flash中的元件、函数、变量
注意 此贴 为个人边“开荒”边写,所以不保证就是最佳做法,也难免有错误! 正式教程会在后续开始更新 当你导出第一个canvas后,你会在保存fla的文件夹里 (每个项目默认位置)看到 如下文件,(请先 ...
- HTML5 Canvas JavaScript库 Fabric.js 使用经验
首先,表明我的态度:采用 Flash 才是最优方案,不建议使用 HTML 5 的 Canvas 做一些生产/工业级的网页应用. Flash的优势一是浏览器支持好,二是代码成熟稳定.而HTML5 的 C ...
- [js高手之路] html5 canvas动画教程 - 实时获取鼠标的当前坐标
有了前面的canvas基础之后,现在开始就精彩了,后面写的canvas教程都是属于综合应用,前面已经写了常用的canvas基础知识,参考链接如下: [js高手之路] html5 canvas系列教程 ...
- js+canvas(H5)实现小球移动小demo
*canvas提供画布,大小自定义,js得到画布,从画布对象通过getContext('2d')来得到画笔,然后就可以开始画了 代码: <!DOCTYPE html> <html l ...
- Canvas实用库Fabric.js使用手册
简介什么是Fabric.js? Fabric.js是一个可以简化Canvas程序编写的库. Fabric.js为Canvas提供所缺少的对象模型, svg parser, 交互和一整套其他不可或缺的工 ...
- canvas应用——将方形图片处理为圆形
上段时间在项目中需要将方形图片处理为圆形图片,你可能会说直接用css设置border-radius: 50%就可以了,但是项目中还要将此图片的圆形图片作为一部分利用canvas将其绘制到一张背景图上面 ...
随机推荐
- clang: error: invalid deployment target for -stdlib=libc++ (requires iOS 5.0 or later)
低于5.0版本的不支持设置成 或 在Xcode中做如下配置 静态库工程也要做同样设置
- Flyer
hdu4768:http://acm.hdu.edu.cn/showproblem.php?pid=4768 题意:给你1--2^32个位置,然后有m个操作,每次操作给你3个数 a,b,c,然后在a, ...
- android 判断程序是首次(第一次)进入
很多时候,我们需要判断用户是不是第一次进入程序,以决定是不是给用户一些操作提示. 这种功能的实现,说到底还是将数据(一个标志位)存储起来,下次进入程序的时候读取数据进行判断. 我这里只给出一种较简单的 ...
- Android+struts2+JSON方式的手机开发(Login)
在手机的后台服务无论是调用WebService还是Http请求,多数都是采用Android的HttpClient实现相关的调用实现.本文实现Android+Struts2+JSON方式实现为手机前台提 ...
- 监控Activity在前后台状态的切换
public class BaseActivity extends Activity{ @Overrideprotected void onStop() { boolean isOnForegroun ...
- Java中类Exchaner浅析
Exchaner用于实现两个人之间的数据交换,每个人在完成一定的事物后想与对方交换数据,第一个先拿出数据的人将一直等待第二个人拿着数据到来时,才能彼此交换数据. 张孝祥老师在讲解Exchaner时的比 ...
- 【HDOJ】1150 Machine Schedule
匈牙利算法. #include <stdio.h> #include <string.h> #define MAXNUM 1005 char map[MAXNUM][MAXNU ...
- 数据结构(树状数组):HEOI2012 采花
[题目描述] 萧薰儿是古国的公主,平时的一大爱好是采花. 今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花.花园足够大,容纳了n朵花,花有c种颜色(用整数1-c表示),且花是排成一排的,以便 ...
- Java反射获取类和对象信息全解析
反射可以解决在编译时无法预知对象和类是属于那个类的,要根据程序运行时的信息才能知道该对象和类的信息的问题. 在两个人协作开发时,你只要知道对方的类名就可以进行初步的开发了. 获取类对象 Class.f ...
- TOYS - POJ 2318(计算几何,叉积判断)
题目大意:给你一个矩形的左上角和右下角的坐标,然后这个矩形有 N 个隔板分割成 N+1 个区域,下面有 M 组坐标,求出来每个区域包含的坐标数. 分析:做的第一道计算几何题目....使用叉积判断方 ...