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将其绘制到一张背景图上面 ...
随机推荐
- 转-[Python 学习]2.5版yield之学习心得
在 shhgs 发布了关于< Py 2.5 what’s new 之 yield>之后,原来我不是特别关注 yield 的用法,因为对于2.3中加入的yield相对来说功能简单,它是作为一 ...
- kafka java示例
http://www.open-open.com/lib/view/open1407942131801.html http://www.open-open.com/lib/view/open14079 ...
- Hosting Multiple Service Implementations On The Same Port With WCF
Hosting Multiple Service Implementations On The Same Port With WCF Recently I have been playing arou ...
- 疯狂VirtualBOX 实战讲学录:小耗子之VirtualBOX修炼全程重现
疯狂VirtualBOX 实战讲学录:小耗子之VirtualBOX修炼全程重现 神级虚拟技术&云计算专家”小耗子”老师震撼分享 全球第—部完整深入的中文VirtualBox技术全程实战手册 全 ...
- 微软开放技术发布开源的微软云服务器底盘管理器 (Chasis Manager) 软件
发布于 2014-07-14 作者 陈 忠岳 今天,微软公司加入开放计算项目(OCP),贡献出硬件和软件规范,管理 API 和协议,机械 CAD 模型,以及电路板文件和 Gerbers(描述印刷 ...
- 数据结构(分块):[HZOI 2015]easy seq
[题目描述] 给定一个序列,下标从0开始,分别为a0,a1,a2...an−1,有m个询问,每次给出l和r,求满足ai=aj且l<=i<=j<=r时j−i的最大值 本题强制在线,l和 ...
- HDU-4920 Matrix multiplication
矩阵相乘,采用一行的去访问,比采用一列访问时间更短,根据数组是一行去储存的.神奇小代码. Matrix multiplication Time Limit: 4000/2000 MS (Java/Ot ...
- LR报-27727错误解决办法
1.报如下错误:Action.c(4):Error-27727:Step download timeout(120 seconds) has expired when downloading reso ...
- HDOJ1175连连看 DFS
连连看 Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...
- spring 学习的开源项目
http://jinnianshilongnian.iteye.com/blog/1508016 http://jinnianshilongnian.iteye.com/blog/2049092 sp ...