博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信小程序canvas把正方形图片绘制成圆形
阅读量:4653 次
发布时间:2019-06-09

本文共 1067 字,大约阅读时间需要 3 分钟。

wxml代码:

js代码:

var contex = wx.createCanvasContext('firstCanvas')    var avatarurl_width = 100;    //绘制的头像宽度    var avatarurl_heigth = 100;   //绘制的头像高度    var avatarurl_x = 50;   //绘制的头像在画布上的位置    var avatarurl_y = 50;   //绘制的头像在画布上的位置    contex.save();    contex.beginPath(); //开始绘制    //先画个圆   前两个参数确定了圆心 (x,y) 坐标  第三个参数是圆的半径  四参数是绘图方向  默认是false,即顺时针    contex.arc(avatarurl_width / 2 + avatarurl_x, avatarurl_heigth / 2 + avatarurl_y, avatarurl_width / 2, 0, Math.PI * 2, false);    contex.clip();//画好了圆 剪切  原始画布中剪切任意形状和尺寸。一旦剪切了某个区域,则所有之后的绘图都会被限制在被剪切的区域内 这也是我们要save上下文的原因        contex.drawImage('https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2369419058,1797305489&fm=27&gp=0.jpg', avatarurl_x, avatarurl_y, avatarurl_width, avatarurl_heigth); // 推进去图片,必须是https图片    contex.restore(); //恢复之前保存的绘图上下文 恢复之前保存的绘图上下午即状态 还可以继续绘制    contex.draw(); //可将之前在绘图上下文中的描述(路径、变形、样式)画到 canvas 中

 原图地址:

 
实现效果:

转载于:https://www.cnblogs.com/-mrl/p/9072009.html

你可能感兴趣的文章
Spark使用总结与分享
查看>>
JMETER - BEANSHELL获取响应结果
查看>>
Line 7.10 : Syntax error
查看>>
[转] 树状数组学习
查看>>
ASP.NET-ActionFilter过滤器用法实例
查看>>
将url的查询参数解析成字典对象
查看>>
Redis与RabbitMQ作为消息队列的比较
查看>>
mybatis实战教程三:mybatis和springmvc整合
查看>>
Java多线程:Semaphore
查看>>
960栅格化优势
查看>>
LSP原则—关于正方形不是长方形
查看>>
Android内核开发 相关工具及源码下载汇总
查看>>
多线程(二)--NSThread基本使用
查看>>
git command
查看>>
使用Photon引擎进行unity网络游戏开发(二)——Photon常用类介绍
查看>>
html里 调整字间距
查看>>
RabbitMQ的Vhost,Exchange,Queue原理分析
查看>>
Mac上编写C语言程序
查看>>
251.Flatten 2D Vector
查看>>
WLS Exception: Need to specify class name in environment or system property Solution
查看>>