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 相关文章推荐
JavaScript继承方式实例
Oct 29 Javascript
javascript定义变量时带var与不带var的区别分析
Jan 12 Javascript
纯JavaScript代码实现文本比较工具
Feb 17 Javascript
全屏js头像上传插件源码高清版
Mar 29 Javascript
详解JavaScript中基于原型prototype的继承特性
May 05 Javascript
Angular 应用技巧总结
Sep 14 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
Dec 19 Javascript
谈谈Vue.js——vue-resource全攻略
Jan 16 Javascript
jquery中done和then的区别(详解)
Dec 19 jQuery
JS异步执行结果获取的3种解决方式
Feb 19 Javascript
js实现验证码功能
Jul 24 Javascript
如何基于jQuery实现五角星评分
Sep 02 jQuery
详解本地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实现Soap通讯的方法
2014/11/03 PHP
thinkPHP5使用Rabc实现权限管理
2019/08/28 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
javascript中自定义对象的属性方法分享
2013/07/12 Javascript
JavaScript数据类型详解
2015/04/01 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)
2016/06/07 Javascript
Javascript日期格式化format函数的使用方法
2016/08/30 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
2018/09/12 Javascript
详解JavaScript中的函数、对象
2019/04/01 Javascript
jquery中为什么能用$操作
2019/06/18 jQuery
vue实现直播间点赞飘心效果的示例代码
2019/09/20 Javascript
JS操作字符串转数字的常见方法示例
2019/10/29 Javascript
JavaScript中变量提升机制示例详解
2019/12/27 Javascript
jQuery实现可以计算进制转换的计算器
2020/10/19 jQuery
解决elementui表格操作列自适应列宽
2020/12/28 Javascript
[03:15]DOTA2-DPC中国联赛1月22日Recap集锦
2021/03/11 DOTA
python基础教程之面向对象的一些概念
2014/08/29 Python
Python通过递归遍历出集合中所有元素的方法
2015/02/25 Python
python通过openpyxl生成Excel文件的方法
2015/05/12 Python
python使用reportlab实现图片转换成pdf的方法
2015/05/22 Python
python正则表达式re之compile函数解析
2017/10/25 Python
Python字典循环添加一键多值的用法实例
2019/01/20 Python
Python实现的序列化和反序列化二叉树算法示例
2019/03/02 Python
详解Python Matplot中文显示完美解决方案
2019/03/07 Python
python requests指定出口ip的例子
2019/07/25 Python
聊聊python中的循环遍历
2020/09/07 Python
一个不错的HTML5 Canvas多层点击事件监听实例
2014/04/29 HTML / CSS
Hawes & Curtis澳大利亚官网:英国经典服饰品牌
2018/10/29 全球购物
Java多态性的定义以及类型
2014/09/16 面试题
夜大自我鉴定
2013/10/31 职场文书
党员民主评议个人总结
2014/10/20 职场文书
Python基础学习之奇异的GUI对话框
2021/05/27 Python
postgreSQL数据库基础知识介绍
2022/04/12 PostgreSQL
flex布局中使用flex-wrap实现换行的项目实践
2022/06/21 HTML / CSS