亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

利用Canvas模擬微信紅包照片

標簽:
Html5

该实例根据慕课网视频制作

实现原理:在一张模糊化的图片上放置canvas,在canvas上裁剪出一个可见圆区域,利用canvas强大的绘图功能把清晰的图片绘制canvas上,由于已经有了裁剪区域,则所有之后的绘图都会被限制在被剪切的区域内,所以我们只能看到区域内的一小块清晰图片。

1、图片的模糊化,利用CSS3的filter样式

-ms-filter: blur(9px);
-webkit-filter: blur(9px);
-o-filter: blur(9px);
-moz-filter: blur(9px);
filter: blur(9px);

这里的blur就是模糊效果,具体可以搜索 “CSS3 Filter的十种特效”

2、创建canvas,裁剪区域

context.arc(clippingRegion.x, clippingRegion.y, clippingRegion.r, 0, Math.PI*2, false);

3、在canvas上画图

context.drawImage(
    image,
    Math.max(leftMargin,0), Math.max(topMargin,0),//开始剪切的 x y坐标位置
    Math.min(canvas.width,image.width), Math.min(canvas.height,image.height),//被剪切图像的宽,高度
    leftMargin<0?-leftMargin:0, topMargin<0?-topMargin:0, //在画布上放置图像的 x 坐标位置
    Math.min(canvas.width,image.width), Math.min(canvas.height,image.height)//要使用的图像的宽,高度
);

4、利用setInterval时间函数逐步增大区域的半径,产生动画,然后完成整个效果

demo地址:http://aweig.github.io/demo/canvas_redphotos/index.html

源码地址:

https://github.com/aweig/aweig.github.io/tree/master/demo/canvas_redphotos

點擊查看更多內容
11人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
Web前端工程師
手記
粉絲
4
獲贊與收藏
562

關注作者,訂閱最新文章

閱讀免費教程

感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消