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 相关文章推荐
网页和浏览器兼容性问题汇总(draft1)
Jun 01 Javascript
jquery ajax方式直接提交整个表单核心代码
Aug 15 Javascript
基于JavaScript实现轮播图代码
Jul 14 Javascript
JavaScript实现图片轮播组件代码示例
Nov 22 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
Jan 03 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
Apr 29 jQuery
React-router v4 路由配置方法小结
Aug 08 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
Mar 13 Javascript
浅谈layui 表单元素的选中问题
Oct 25 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
Apr 09 Javascript
浅谈vue 多个变量同时赋相同值互相影响
Aug 05 Javascript
浅谈vue-props的default写不写有什么区别
Aug 09 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将session信息存储到数据库的类实例
2015/03/04 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
2016/09/13 PHP
JavaScript打开word文档的实现代码(c#)
2012/04/16 Javascript
Javascript实现滚动图片新闻的实例代码
2013/11/27 Javascript
子页向父页传值示例
2013/11/27 Javascript
深入理解javascript构造函数和原型对象
2014/09/23 Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
2015/09/15 Javascript
Bootstrap每天必学之折叠
2016/04/12 Javascript
原生js实现节日时间倒计时功能
2017/01/18 Javascript
微信小程序实现图片自适应(支持多图)
2017/01/25 Javascript
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
Vue中引入样式文件的方法
2017/08/18 Javascript
seajs下require书写约定实例分析
2018/05/16 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
2018/07/10 Javascript
Vue 路由 过渡动效 数据获取方法
2018/07/31 Javascript
vue-cli3.0配置及使用注意事项详解
2018/09/05 Javascript
自己动手封装一个React Native多级联动
2018/09/19 Javascript
layui--js控制switch的切换方法
2019/09/03 Javascript
使用Vue实现调用接口加载页面初始数据
2019/10/28 Javascript
es6中let和const的使用方法详解
2020/02/24 Javascript
让IDE识别webpack的别名alias的实现方法
2020/05/06 Javascript
Python实现类的创建与使用方法示例
2017/07/25 Python
Anaconda入门使用总结
2018/04/05 Python
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
python绘制直方图和密度图的实例
2019/07/08 Python
Python编程快速上手——强口令检测算法案例分析
2020/02/29 Python
详解Python中import机制
2020/09/11 Python
pycharm-professional-2020.1下载与激活的教程
2020/09/21 Python
法院信息化建设方案
2014/05/21 职场文书
影视后期实训报告
2014/11/05 职场文书
幼儿园六一儿童节活动总结
2015/02/10 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书
JS实现扫雷项目总结
2021/05/19 Javascript
教你如何使用Python Tkinter库制作记事本
2021/06/10 Python
如何使用pdb进行Python调试
2021/06/30 Python
Win11显卡控制面板打开显卡设置方法
2022/04/20 数码科技