canvas红包照片实例分享


Posted in Javascript onFebruary 28, 2017

效果:

点击RESET:随机显示剪辑区域;

点击SHOW:显示完整清晰图片;

canvas红包照片实例分享

图(1)点击RESET

canvas红包照片实例分享

图(2)点击SHOW

代码如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>canvas红包照片</title>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<style type="text/css">
 #blur_div{
 width: 500px;
 height: 334px;
 margin: 0 auto;
 position: relative;
 margin-top:100px;
 }
 #blur_img{
 display: block;
 width: 500px;
 height: 334px;
 margin: 0 auto;
 filter: blur(15px);/*CSS3模糊*/
 -webkit-filter: blur(15px);
 -moz-filter: blur(15px);
 -ms-filter: blur(15px);
 -o-filter: blur(15px);
 position:absolute;
 left: 0px;
 top: 0px;
 z-index: 0;
 }
 #canvas{
 display: block;
 margin: 0 auto;
 position:absolute;
 left: 0px;
 top: 0px;
 z-index: 100;
/* background-color:red;*/
 }
 .button{
 display:block;
 position:absolute;
 z-index:200;
 width:80px;
 height:30px;
 color:white;
 text-decoration:none;
 text-align:center;
 line-height:30px;
 border-radius:5px;
 }
 #reset_button{
 left:100px;
 bottom:20px;
 background-color:#058;
 }
 #reset_button:hover{
 background-color:#047;
 }
 #show_button{
 right:100px;
 bottom:20px;
 background-color:#085;
 }
 #show_button:hover{
 background-color:#074;
 }
</style>
</head>
<body>
 <div id="blur_div">
 <img id="blur_img" src="http://cdn.attach.qdfuns.com/notes/pics/201702/27/221935e35ugwllljg10912.jpg" />
  <canvas id="canvas"></canvas>
  <a href="javascript:reset()" rel="external nofollow" class="button" id="reset_button">RESET</a>
  <a href="javascript:show()" rel="external nofollow" class="button" id="show_button">SHOW</a>
  </div>
 <script>
   var canvasWidth = 500;
 var canvasHeight = 334;
 var canvas = document.getElementById("canvas");
 var context = canvas.getContext("2d");
 canvas.width = canvasWidth;
 canvas.height = canvasHeight;
 /*在canvas上绘制清晰的图片*/
 var image = new Image();
 var radius = 40;
 var clippingRegion = {x:-1,y:-1,r:radius};/*初始化剪辑区域*/
 image.src = "http://cdn.attach.qdfuns.com/notes/pics/201702/27/221935e35ugwllljg10912.jpg";
 image.onload = function(e){
  initCanvas();
 }
 function initCanvas(){
  clippingRegion = {x:Math.random()*(canvas.width-2*radius)+radius,
     y:Math.random()*(canvas.height-2*radius)+radius,
     r:radius};/*随机剪辑区域*/
  draw(image,clippingRegion);
 }
 function setClippingRegion(clippingRegion){
  context.beginPath();
  context.arc(clippingRegion.x,clippingRegion.y,clippingRegion.r,0,2*Math.PI,false);/*绘制剪辑区域的路径*/
  context.clip();
 }
 function draw(image,clippingRegion){
  context.clearRect(0,0,canvas.width,canvas.height);/*清除画布*/
  context.save();
  setClippingRegion(clippingRegion);/*重新设置剪辑区域*/
  context.drawImage(image,0,0);
  context.restore();
 }
 /*重置显示剪辑区域*/
 function reset(){
  initCanvas();
 }
 /*显示整个清晰图片*/
 function show(){
  var theAnimation = setInterval( 
  function(){
   clippingRegion.r += 20; 
   if(clippingRegion.r>2*Math.max(canvas.width,canvas.height)){
   clearInterval(theAnimation);
   }
   draw(image,clippingRegion);
  },20)
 }  
  </script>
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
JS打开新窗口的2种方式
Apr 18 Javascript
如何实现移动端浏览器不显示 pc 端的广告
Oct 15 Javascript
在Ubuntu系统上安装Node.JS的教程
Oct 15 Javascript
JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色
Nov 26 Javascript
js removeChild 方法深入理解
Aug 16 Javascript
基于jQuery实现中英文切换导航条效果
Sep 18 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
Sep 24 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
Dec 05 Javascript
微信小程序之蓝牙的链接
Sep 26 Javascript
AjaxUpLoad.js实现文件上传功能
Mar 02 Javascript
js get和post请求实现代码解析
Feb 06 Javascript
vue商城中商品“筛选器”功能的实现代码
Jul 01 Javascript
详解本地Node.js服务器作为api服务器的解决办法
Feb 28 #Javascript
jquery操作select取值赋值与设置选中实例
Feb 28 #Javascript
JS使用面向对象技术实现的tab选项卡效果示例
Feb 28 #Javascript
基于cookie实现zTree树刷新后展开状态不变
Feb 28 #Javascript
js中Number数字数值运算后值不对的解决方法
Feb 28 #Javascript
canvas绘图不清晰的解决方案
Feb 28 #Javascript
jQuery树控件zTree使用方法详解(一)
Feb 28 #Javascript
You might like
十天学会php之第三天
2006/10/09 PHP
PHP计算2点经纬度之间的距离代码
2013/08/12 PHP
php+mysql数据库实现无限分类的方法
2014/12/12 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
网站上面有这种切换效果
2006/06/26 Javascript
张孝祥JavaScript学习阶段性总结(2)--(X)HTML学习
2007/02/03 Javascript
JavaScript Array扩展实现代码
2009/10/14 Javascript
新手常遇到的一些jquery问题整理
2010/08/16 Javascript
a标签click和href执行顺序探讨
2014/06/23 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
2014/12/01 Javascript
做web开发 先学JavaScript
2014/12/12 Javascript
jQuery实现简单的日期输入格式化控件
2015/03/12 Javascript
基于jquery ui的alert,confirm方案(支持换肤)
2015/04/03 Javascript
基于Jquery代码实现手风琴菜单
2015/11/19 Javascript
Bootstrap Table使用整理(一)
2017/06/09 Javascript
详解如何在nuxt中添加proxyTable代理
2018/08/10 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
如何利用nodejs自动定时发送邮件提醒(超实用)
2020/12/01 NodeJs
python命令行参数sys.argv使用示例
2014/01/28 Python
python虚拟环境virtualenv的安装与使用
2017/09/21 Python
python使用logging模块发送邮件代码示例
2018/01/18 Python
Python学习笔记之变量、自定义函数用法示例
2019/05/28 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
2019/06/14 Python
浅谈PyTorch的可重复性问题(如何使实验结果可复现)
2020/02/20 Python
python中K-means算法基础知识点
2021/01/25 Python
HTML5实现一个能够移动的小坦克示例代码
2013/09/02 HTML / CSS
html5将图片转换成base64的实例代码
2016/09/21 HTML / CSS
越南电子产品购物网站:FPT Shop
2017/12/02 全球购物
初中生学习生活的自我评价
2013/11/20 职场文书
中专毕业生的自我鉴定
2013/12/01 职场文书
给朋友的道歉信
2014/01/09 职场文书
人力资源管理毕业生自荐信
2014/06/26 职场文书
教师节活动总结
2014/08/29 职场文书
解除聘用合同证明书范本
2014/09/11 职场文书