微信小程序怎么实现圣诞帽
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,今天小编给大家分享一下微信小程序怎么实现圣诞帽的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解
千家信息网最后更新 2025年01月31日微信小程序怎么实现圣诞帽
今天小编给大家分享一下微信小程序怎么实现圣诞帽的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
先来看看效果
思路
1.获取用户头像
wx.getUserInfo({ success: function(res) { var userInfo = res.userInfo var avatarUrl = userInfo.avatarUrl }})
这里有个问题需要注意,canvas不支持网络图片,上面获取的只是头像图片地址,所以在这里要把图片下载到微信的临时目录。代码如下:
wx.downloadFile({ url: userInfo.avatarUrl, success: function (res) { if (res.statusCode === 200) { avatarUrl = res.tempFilePath //这里的地址是指向本地图片 } } })
获取头像这一步用的是微信现成的API 比较方便。
2.绘制用户头像
此处封装了常用的方法,下方avatarImg.w和avatarImg.h是指头像的大小。
drawAvatar: function (img) { ctx.drawImage(img, 0, 0, avatarImg.w, avatarImg.h)}
绘制图片使用drawImage函数
3.绘制帽子
绘制帽子之前,我定义了一个对象object来保存帽子的参数
var hat = { url: "../res/hat01.png", w: 40, h: 40, x: 100, y: 100, b: 1,//缩放的倍率 rotate: 0//旋转的角度}
接下来开始绘制帽子
drawHat: function (hat) { ctx.translate(hat.x, hat.y) ctx.scale(hat.b, hat.b) ctx.rotate(hat.rotate * Math.PI / 180) ctx.drawImage(hat.url, -hat.w / 2, -hat.h / 2, hat.w, hat.h) }
这里要稍微解释下,是以帽子的中心点为原点进行缩放、旋转
ctx.translate(hat.x, hat.y) //translate是将画布的中心点移动到指定坐标处
此时的原点已经从(0,0)移动到(x,y),也就是帽子的中心点,帽子长的二分之一和宽的二分之一交汇处。
ctx.drawImage(hat.url, -hat.w / 2, -hat.h / 2, hat.w, hat.h)
画帽子的关键是把x,y 移动到原点之外,示意图如下:
4.改变帽子的参数
移动帽子:
moveHat: function (e) { hat.x = e.touches[0].x hat.y = e.touches[0].y that.drawA() }
旋转帽子:
rotateHat: function (e) { hat.rotate = e.detail.value //这一块偷懒了,用slider组件 ,滑动取值 that.drawA() }
缩放帽子:
scaleHat: function (e) { hat.b = e.detail.value hat.w = 40 * hat.b hat.h = 40 * hat.b that.drawA() ////此处用slider组件 ,滑动取值 }
改变帽子样式:
changeHat: function (e) { hat.url = e.currentTarget.dataset.url //改变帽子的样式 that.drawA() }
这几个方法中都有drawA(),这主要是每一次移动、旋转、缩放、改变参数时重绘画布。
5.Canvas导出图片
微信官方有提供相应API
saveToPhoto: function () { wx.canvasToTempFilePath({ x: 0, y: 0, width: 240, height: 240, destWidth: 240, destHeight: 240, canvasId: 'ctx', success: function (res) { //canvas转图片成功回调 } })}
最后保存到相册
wx.saveImageToPhotosAlbum({ filePath: res.tempFilePath,}) wx.showToast({title: '保存成功'})
以上就是"微信小程序怎么实现圣诞帽"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
帽子
图片
移动
头像
知识
篇文章
中心点
原点
参数
程序
成功
内容
地址
方法
样式
用户
画布
组件
不同
很大
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
运维需要软件开发
沈阳市小程序软件开发外包
kis 数据库保护
如何开传奇服务器
服务器本机怎么访问网站
软件开发代码遵循的标准
重庆丽满网络技术有限公司
怎么用实验室电脑查看服务器id
Bingo网络技术有限公司
向阿里服务器上传文件
软件开发中的系统应用
Ideacc软件开发
公职人员网络安全培训心得体会
沈阳师范大学网络技术怎么样
中骏集团软件开发
商机在线网络技术有限公司
虚拟服务器云服务器价格对比
公安网络安全的文
创建数据库对象
agv小车软件开发
销售管理数据库设计
游戏服务器可以在自己电脑上吗
向阿里服务器上传文件
软件开发各阶段 甲方职责
杭州迪来互联网科技
机电系统网络安全应急预案
华为招聘软件开发要求高吗
南昌网络安全工资
软件开发心得总结
安徽手机软件开发项目