微信证件照小程序开发第三章,经过一个周末的努力,今天更新(图库/拍照)上传图片-图片人像分割-图片背景替换,这是本小程序的核心内容,以及剩下的只是数据的增删改查。掘金更新比较早,后面会同步更新。已审核通过图片选录。这两个我这里是分开写的,也可以用一个按钮组合在一起,然后点微信自动给用户弹出一个框。选择,效果大概是这样的微信提供的方法是#wx.chooseImage/wx.chooseMedia,官方文档链接图片分割上传图片后,需要分割图片人像,其实就是抠图。看到腾讯云,百度云都有人体识别和人像分割的接口,都可以用。我用的是百度(我的腾讯云没有免费额度),我先从百度的画像切分开始(具体的注册方式,实名认证等,跟着系统一步一步来就好!)我用的这两个接口,一个手势识别我用来判断上传的图片是不是人像(看了上面的接口,没找到更好的),另一个是人像分割接口(现在好像已经内测接口了added,也就是证件照接口,有兴趣的朋友可以看看,我也在看,现在没用,以后应该会改的。)用的时候直接看node就可以了。.jsSDK文档很好。该代码实现了新的云功能。根据上面的文档,先下载包npminstallbaidu-aip-sdk//获取图片url地址consttempFileURL=awaitgetFileUrlByFileID(event.fileID)//云存储图片consttmpOriginImgSrc=encodeURI(`${tempFileURL}?imageMogr2/thumbnail/1500x1500|imageMogr2/format/jpg`)//获取图片缓冲区constimgBuffer=awaitgetHttpBuffer(tmpOriginImgSrc)//图片的base64constimageBase64=encodeURI(imgBuffer.toString('base64'))//百度人像人脸检测const{result,result_num}=(awaitclient.gesture(imageBase64))if(!result.长度||结果数!==1||result[0].classname!=='Face')return{res:false,msg:'图片不符合要求'}//百度人像分割结果const{foreground,error_code,error_msg}=(awaitclient.bodySeg(imageBase64,{type:'foreground'}))if(error_code)return{res:false,msg:error_msg}if(!foreground)return{res:false,foreground,error_code,error_msg}常量resultFileId=awaituploadBase64(foreground,openid)总结一下时间关系,图片组合就不说了,下次把图片组合完成一起更新。主要流程也说完了,下次整理出来分享出来,拿出我的代码,大家一起学习。我刚提交了小程序,正在审核中。审核通过后会放出小程序的代码,先来体验一下吧!!!以后我会继续分享,请继续关注!码字不易,记得点赞哦!
