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 图片 上一张 下一张 链接效果(续篇)
Apr 20 Javascript
Jquery公告滚动+AJAX后台得到数据
Apr 14 Javascript
基于jQuery实现点击弹出层实例代码
Jan 01 Javascript
JavaScript简单实现鼠标移动切换图片的方法
Feb 23 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
Apr 21 Javascript
jquery动态创建div与input的实例代码
Oct 12 Javascript
javascript兼容性(实例讲解)
Aug 15 Javascript
浅谈vue引用静态资源需要注意的事项
Sep 28 Javascript
js取小数点后两位四种方法
Jan 18 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
May 16 Javascript
js实现选项卡效果
Mar 07 Javascript
如何使用vue3打造一个物料库
May 08 Vue.js
详解本地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中的strtr函数使用介绍(str_replace)
2011/10/20 PHP
PHP上传文件时文件过大$_FILES为空的解决方法
2013/11/26 PHP
带你了解PHP7 性能翻倍的关键
2015/11/19 PHP
Yii1.1框架实现PHP极光推送消息通知功能
2018/09/06 PHP
Mozilla 表达式 __noSuchMethod__
2009/04/05 Javascript
jquery与google map api结合使用 控件,监听器
2010/03/04 Javascript
网站页面自动跳转实现方法PHP、JSP(下)
2010/08/01 Javascript
解决IE6的PNG透明JS插件使用介绍
2013/04/17 Javascript
javascript获取隐藏dom的宽高 具体实现
2013/07/14 Javascript
js 将json字符串转换为json对象的方法解析
2013/11/13 Javascript
JS实现CheckBox复选框全选全不选功能
2015/05/06 Javascript
JavaScript中setUTCFullYear()方法的使用简介
2015/06/12 Javascript
如何判断Javascript对象是否存在的简单实例
2016/05/18 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
2016/11/01 Javascript
WebSocket实现简单客服聊天系统
2017/05/12 Javascript
JS图片延迟加载插件LazyImgv1.0用法分析【附demo源码下载】
2017/09/04 Javascript
浅谈如何通过node.js对数据进行MD5加密
2018/05/16 Javascript
puppeteer实现html截图的示例代码
2019/01/10 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
基于Vue2-Calendar改进的日历组件(含中文使用说明)
2019/04/14 Javascript
JavaScript内置对象math,global功能与用法实例分析
2019/06/10 Javascript
回调函数的意义以及python实现实例
2017/06/20 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
2018/04/19 Python
pandas实现选取特定索引的行
2018/04/20 Python
基于Python List的赋值方法
2018/06/23 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
解决PyCharm无法使用lxml库的问题(图解)
2020/12/22 Python
css3 column实现卡片瀑布流布局的示例代码
2018/06/22 HTML / CSS
新加坡航空官方网站:Singapore Airlines
2016/10/13 全球购物
爱尔兰灯和灯具网上商店:Lights.ie
2018/03/26 全球购物
2014年人事工作总结范文
2014/11/19 职场文书
2015年度考核个人工作总结
2015/10/24 职场文书
MySQL8.0.24版本Release Note的一些改进点
2021/04/22 MySQL
MySQL系列之九 mysql查询缓存及索引
2021/07/02 MySQL
前端JavaScript大管家 package.json
2021/11/02 Javascript
详解MySql中InnoDB存储引擎中的各种锁
2022/02/12 MySQL