Canvas模仿微信红包照片
来源:互联网 发布:股票实时行情数据接口 编辑:程序博客网 时间:2024/06/11 15:47
1.最终效果:
2.实现过程:
1.将图片加载出来,并加上模糊效果:
index.html:
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <script src="jquery-2.2.0.min.js"></script> <link href="image.css" rel="stylesheet" type="text/css" /></head><body> <div id="blur-div"> <img id="blur-image" src="me.jpg"/> <canvas id="canvas">no canvas</canvas> </div> <script src="blur.js"></script></body></html>
image.css:
#blur-div{ display: block; width: 600px; height: 800px; margin: 0 auto; position: relative;}#blur-image{ display: block; width: 600px; height: 800px; margin: 0 auto; filter: blur(20px); -webkit-filter: blur(20px); -moz-filter:blur(20px); -ms-filter:blur(20px); -o-filter:blur(20px); position: absolute; left: 0; top: 0; z-index: 0;}#canvas{ display: block; margin: 0 auto; position: absolute; left: 0; top: 0; z-index: 100;}
效果:
2.把canvas覆盖在图片上面,用同一张图片:
blur.js:
var canvasWidth = 600;var canvasHeight = 800;var canvas = document.getElementById("canvas");var context = canvas.getContext("2d");canvas.width = canvasWidth;canvas.height = canvasHeight;var image = new Image();image.src = "me.jpg";//因为图片可能比较大,等待加载完了再运行逻辑image.onload = function(e){ initCanvas();}function initCanvas(){ draw(image);}function draw(image){ context.clearRect(0,0,canvas.width,canvas.height); context.save(); context.drawImage(image,0,0,600,800); context.restore();}
效果,可以看到后面还有模糊的背景:
3.先绘制一个固定的圆形剪辑区域(具体代码最后给出):
var clipRegion = {x:400,y:200,r:80};//剪辑区域对象//绘制剪辑区域function setClipRegion(clipRegion){ context.beginPath(); context.arc(clipRegion.x,clipRegion.y,clipRegion.r,0,Math.PI*2,false); context.clip();}
效果:
4.交互设计:
设置两个button,一个随机剪辑区域,一个查看图片
完成两个按钮的点击事件:
function reset(){ initCanvas();}function show(){ clipRegion.r = 1000; draw(image,clipRegion);}
效果可以自己试试:
3.源代码:
canvas与模糊效果
1 1
- Canvas模仿微信红包照片
- 模仿微信红包模糊照片
- Canvas实现微信红包照片效果
- 模仿微信红包
- 微信红包照片的揭秘
- 微信朋友圈红包照片实现
- 手把手教你免费看IOS微信红包照片
- 如何获取微信红包照片的原始清晰图片
- 使用canvas做出红包照片的效果
- canvas实现微信朋友圈猜照片功能
- 高斯模糊算法浅析-----------微信朋友圈的红包照片有感而发
- android仿2016年春节微信朋友圈红包照片效果
- 微信红包照片来了,用变色龙隐形二维码赚点零花钱
- 微信红包
- 微信红包算法
- 微信现金红包
- 微信红包算法
- 微信红包
- 从IA32到X86-64的扩展所导致的函数传参栈模型的变化
- 月季年TOP 模型-月
- 使用addChildViewController 遇到没有加载的controller viewdidload也被调用
- android项目中出现的错误
- AndroidStudio中使用开源框架android-gif-drawable
- Canvas模仿微信红包照片
- Windows winsock2 SPI使用
- Android之传感器(二)加速度传感器
- 理解Java对象序列化
- BTP职业网球赛(二分+并查集)
- PRVF-5439 : NTP daemon does not have slewing option "-x"
- nodejs处理图片的中间件node-images
- JUnit 标签执行顺序解析
- win8.1和win10 loadrunner安装与破解问题总结