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的更多相关文章

  1. StackBlur.js

    StackBlur.js 是 Mario Klingemann 创建的一个快速的.接近高斯模糊的效果库. 更多信息: http://incubator.quasimondo.com/processin ...

  2. 基于html5 canvas 的强大图表插件【Chart.js】

    名词解释 Chart.js:是基于html5和canvas的强大图表插件,支持多样的图表形式,柱状线性饼环极地雷达等等: canvas:只兼容到IE9 excanvas.js:强大的第三方兼容插件,可 ...

  3. FLASH CC 2015 CANVAS (三) flash中写JS调用html中JS的函数,变量

    注意 此贴 为个人边“开荒”边写,所以不保证就是最佳做法,也难免有错误! 正式教程会在后续开始更新 首先我们在HTML里的JS里面添加几行代码 我们在FLASH中新建一个元件,并拖入到舞台,在属性面板 ...

  4. FLASH CC 2015 CANVAS (二)html中写JS调用flash中的元件、函数、变量

    注意 此贴 为个人边“开荒”边写,所以不保证就是最佳做法,也难免有错误! 正式教程会在后续开始更新 当你导出第一个canvas后,你会在保存fla的文件夹里 (每个项目默认位置)看到 如下文件,(请先 ...

  5. HTML5 Canvas JavaScript库 Fabric.js 使用经验

    首先,表明我的态度:采用 Flash 才是最优方案,不建议使用 HTML 5 的 Canvas 做一些生产/工业级的网页应用. Flash的优势一是浏览器支持好,二是代码成熟稳定.而HTML5 的 C ...

  6. [js高手之路] html5 canvas动画教程 - 实时获取鼠标的当前坐标

    有了前面的canvas基础之后,现在开始就精彩了,后面写的canvas教程都是属于综合应用,前面已经写了常用的canvas基础知识,参考链接如下: [js高手之路] html5 canvas系列教程 ...

  7. js+canvas(H5)实现小球移动小demo

    *canvas提供画布,大小自定义,js得到画布,从画布对象通过getContext('2d')来得到画笔,然后就可以开始画了 代码: <!DOCTYPE html> <html l ...

  8. Canvas实用库Fabric.js使用手册

    简介什么是Fabric.js? Fabric.js是一个可以简化Canvas程序编写的库. Fabric.js为Canvas提供所缺少的对象模型, svg parser, 交互和一整套其他不可或缺的工 ...

  9. canvas应用——将方形图片处理为圆形

    上段时间在项目中需要将方形图片处理为圆形图片,你可能会说直接用css设置border-radius: 50%就可以了,但是项目中还要将此图片的圆形图片作为一部分利用canvas将其绘制到一张背景图上面 ...

随机推荐

  1. Alice's Chance

    poj1698:http://poj.org/problem?id=1698 题意:爱丽丝要拍电影,有n部电影,规定爱丽丝每部电影在每个礼拜只有固定的几天可以拍电影,只可以拍前面w个礼拜,并且这部电影 ...

  2. PYTHON调用JENKINS的API来进行CI

    我查到的相关API有两套,我主要用的是python-jenkins. https://pypi.python.org/pypi/python-jenkins/ 按语法调用即可... import je ...

  3. xstream 别名的用法<转>

    1.xstream的alias使用方法: 1.1 作用:将序列化中的类全量名称,用别名替换. 1.2  使用方法:xstream.alias("blog", Blog.class) ...

  4. ssh 认证指定端口

    [root@database2 ~]# cat ssh.sh if [ ! $# -eq 2 ] ;then echo "请输入用户密码以空格分开" exit else ssh-k ...

  5. Android入门-Service-start,end,bind,unbind之间的区别

    写贴一段别人关于service中start与bind,end与unbind的分析了: Service创建有两种方法:  startService或者bindService 服务不能自己运行,需要通过调 ...

  6. [LeetCode#187]Repeated DNA Sequences

    Problem: All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: ...

  7. 锐浪应用小插曲,asp.net下的使用

    下午提前完成了今天的工作内容,整了下bs中的应用,嘿嘿,其中遇到不少问题,接下来说下大概会遇到哪些问题,1:grid++ 6.0插件下载安装之后ie浏览器无法打开,居然什么都没有显示,奇葩啊,系统版本 ...

  8. Bzoj 2588: Spoj 10628. Count on a tree 主席树,离散化,可持久,倍增LCA

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2588 2588: Spoj 10628. Count on a tree Time Limit ...

  9. Matlab编程-图形处理功能

    绘图功能最基本的命令行:plot(y). 二维图形: (1) >> y=rand(100,1); >> plot(y) y是随机的实向量,以生成y的索引为横坐标,y为纵坐标绘图 ...

  10. Docker入门实战_正版电子书在线阅读_百度阅读

    Docker入门实战_正版电子书在线阅读_百度阅读 Docker入门实战