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的时候写的学习笔记
Dec 30 Javascript
关于jQuery新的事件绑定机制on()的使用技巧
Apr 26 Javascript
javascript中的document.open()方法使用介绍
Oct 09 Javascript
JavaScript中创建字典对象(dictionary)实例
Mar 31 Javascript
jquery简单实现幻灯片的方法
Aug 03 Javascript
Javascript获取数组中的最大值和最小值的方法汇总
Jan 01 Javascript
jQuery添加删除DOM元素方法详解
Jan 18 Javascript
JavaScript实现图片无缝滚动效果
Jul 07 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
Nov 08 jQuery
使用vue完成微信公众号网页小记(推荐)
Apr 28 Javascript
js实现整体缩放页面适配移动端
Mar 31 Javascript
react 项目中引入图片的几种方式
Jun 02 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桌面中心(四) 数据显示
2007/03/11 PHP
PHP正则表达式过滤html标签属性(DEMO)
2016/05/04 PHP
PHP Oauth授权和本地加密实现方法
2016/08/12 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
2021/03/09 PHP
JavaScript实现点击按钮切换网页背景色的方法
2015/10/17 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
详细探究ES6之Proxy代理
2016/07/22 Javascript
AngularJS入门教程之迭代器过滤详解
2016/08/18 Javascript
原生js实现中奖信息无间隙滚动效果
2017/01/18 Javascript
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
2017/09/26 Javascript
js实现单张图片平移切换效果
2017/10/11 Javascript
jQuery实现checkbox即点即改批量删除及中间遇到的坑
2017/11/11 jQuery
p5.js入门教程之键盘交互
2018/03/19 Javascript
简述vue-cli中chainWebpack的使用方法
2019/07/30 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
2019/11/17 Javascript
Vue watch响应数据实现方法解析
2020/07/10 Javascript
Javascript前端下载后台传来的文件流代码实例
2020/08/18 Javascript
vue3.0 加载json的方法(非ajax)
2020/10/26 Javascript
[00:32]2018DOTA2亚洲邀请赛Mineski出场
2018/04/04 DOTA
python读写文件操作示例程序
2013/12/02 Python
Python转换HTML到Text纯文本的方法
2015/01/15 Python
python3获取当前文件的上一级目录实例
2018/04/26 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
python实现翻转棋游戏(othello)
2019/07/29 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
python numpy库linspace相同间隔采样的实现
2020/02/25 Python
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
澳大利亚儿童精品仓库:Goo & Co.
2019/06/20 全球购物
Diptyque英国官方网站:源自法国的知名香氛品牌
2019/08/28 全球购物
Ben Sherman官方网站:英国男装品牌
2019/10/22 全球购物
会计专业自荐信范文
2013/12/02 职场文书
打架检讨书100字
2014/01/19 职场文书
优秀安全员事迹材料
2014/05/11 职场文书
2014年学校安全工作总结
2014/11/13 职场文书
优秀乡村医生事迹材料(2016精选版)
2016/02/29 职场文书
《悲惨世界》:比天空更广阔的是人的心灵
2020/01/16 职场文书