微信小程序生成头像

功能

实现套用png透明图模板生成头像,可以指定模板,简单替换开箱即用。
可以自己选择图片,也可以通过微信头像生成。
能通过微信代码图片审查,调用微信小程序珊瑚安全API,实现对用户选择的头像进行安全审查。

效果

在这里插入图片描述在这里插入图片描述

源码

https://gitee.com/nickdlk/wechat_icon_generation

使用

自行创建一个微信小程序,下载微信开发者工具,下载源代码。

可以自定义的地方:
根目录下 app.json 可以修改标题

"navigationBarTitleText": "头像生成",

\pages\index\index.wxml 可以修改首页版权信息

背景图:
<image src="/images/background.jpg" class="background_a" mode="scaleToFill"></image>
logo:
<image src='/images/logo.png' mode='aspectFit' style="width: 200px; height: 200px;"></image>
 <view>美术设计: XXX </view>
 <view>技术支持: Nick </view>

图片可以直接替换源文件
本地样式 存放在images/logos/下 动态加载 但是因为小程序限制2048kb 存放数量有限 需要对样式进行压缩
可以将样式放在图床上,使用图床的链接

index\index.js

更换样式要修改draw函数下的画图代码

否则画出来的头像会有空白,没有填充满整个框
修改参数
context.arc(85, 85, 150, 0, 2 * Math.PI); ○的xy 还有半径
context.drawImage(data, 25, 25, 120, 120); 填充头像进去 x,y 长宽

修改getLocalImg函数下的service

 /** 调用珊瑚安全检查上传的图片是否违规
             * https://developers.weixin.qq.com/community/servicemarket/detail/000a246b6fca70b76a896e6a25ec15
             * 登录后购买,填入接入文档里服务接口的service到下面的service中
             * */
            wx.serviceMarket.invokeService({
              service: '',//填自己的service
              api: 'imgSecCheck',
              data: {
                "Action": "ImageModeration",
                "Scenes": ["PORN", "POLITICS", "TERRORISM"],
                "ImageBase64": res.data,
                "Config": "",
                "Extra": ""
              },
            }).then(res => {
              //成功 获取返回信息
              console.log(res)
              // console.log(res.data.Response.Suggestion)
              if(res.data.Response.Suggestion=="PASS" ){
                wx.hideToast()
                console.log("跳转裁剪")
                wx.navigateTo({
                  url: `../upload/upload?src=${src}` //跳转裁剪
                })
              }else{
                console.error("图片违规")
                wx.hideToast()
                wx.showToast({
                  title: '图片违规,请重选!',
                  icon: 'none',
                  duration: 2500
                })
              }
            }).catch(err => {
              //错误
              wx.hideToast()
              console.error('invokeService fail !!!! ', err)
              if(res.errMsg != "invokeService:ok"){
                console.log("错误 额度不足或者其他原因")
                wx.showToast({
                  title: res.errMsg,
                  icon: 'none',
                  duration: 1500
                })
              }
            })
           }
       })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nickdlk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值