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 相关文章推荐
jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
Jul 03 Javascript
全面解析DOM操作和jQuery实现选项移动操作代码分享
Jun 07 Javascript
跨域请求的完美解决方法(JSONP, CORS)
Jun 12 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
Apr 25 Javascript
JS监控关闭浏览器操作的实例详解
Sep 12 Javascript
Node调用Java的示例代码
Sep 20 Javascript
基于javascript 显式转换与隐式转换(详解)
Dec 15 Javascript
vue的全局提示框组件实例代码
Feb 26 Javascript
Vue.directive 自定义指令的问题小结
Mar 04 Javascript
小程序云开发部署攻略(图文教程)
Oct 30 Javascript
js实现开关灯效果
Mar 30 Javascript
JavaScript 空间坐标的使用
Aug 19 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中使用mysqli扩展库对mysql的操作
2013/07/03 PHP
PHP连接和操作MySQL数据库基础教程
2014/09/29 PHP
ci检测是ajax还是页面post提交数据的方法
2014/11/10 PHP
javascript some()函数用法详解
2014/11/13 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
location.href语句与火狐不兼容的问题
2010/07/04 Javascript
从零开始学习jQuery (二) 万能的选择器
2010/10/01 Javascript
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
JS关键字球状旋转效果的实例代码
2013/11/29 Javascript
鼠标选择动态改变网页背景颜色的JS代码
2013/12/10 Javascript
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
2013/12/12 Javascript
JS实现无缝循环marquee滚动效果
2017/05/22 Javascript
vue router自动判断左右翻页转场动画效果
2017/10/10 Javascript
Vue项目组件化工程开发实践方案
2018/01/09 Javascript
原生JS实现列表子元素顺序反转的方法分析
2018/07/02 Javascript
解析vue data不可以使用箭头函数问题
2018/07/03 Javascript
vue解决一个方法同时发送多个请求的问题
2018/09/25 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
使用layui的layer组件做弹出层的例子
2019/09/27 Javascript
原生js实现贪吃蛇游戏
2020/10/26 Javascript
python使用cPickle模块序列化实例
2014/09/25 Python
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
python and or用法详解
2019/06/26 Python
python numpy 常用随机数的产生方法的实现
2019/08/21 Python
Django发送邮件功能实例详解
2019/09/02 Python
Python 依赖库太多了该如何管理
2019/11/08 Python
浅谈PyTorch中in-place operation的含义
2020/06/27 Python
图解Python中深浅copy(通俗易懂)
2020/09/03 Python
CSS3 background-image颜色渐变的实现代码
2018/09/13 HTML / CSS
HTML5 Canvas绘制圆点虚线实例
2015/01/01 HTML / CSS
Expedia印度尼西亚站:预订酒店、廉价航班和度假套餐
2018/01/31 全球购物
反对四风问题自我剖析材料
2014/09/29 职场文书
教师批评与自我批评材料
2014/10/16 职场文书
教育教学工作反思
2016/02/24 职场文书
使用tensorflow 实现反向传播求导
2021/05/26 Python
MYSQL如何查看操作日志详解
2022/05/30 MySQL