疫情原因,2020年的毕业季也不同了。很多毕业生没有举办正式的毕业典礼,也没有照毕业照,觉得这是人生的一大遗憾.为了弥补这一遗憾,我尝试用云开发快速实现一个云毕业照小程序,纪念我们的青春年华,用户上传人脸照片即可生成学士服云毕业照,小程序支持学士服、硕士服、博士服等个性服装,而且可以通过云开发CMS管理系统随时随地管理小程序云开发内容数据。
云开发提供了一站式服务,开发者无需管理后端服务架构,即可轻松拥有各种后端能力,极大减轻开发过程中繁杂的后端操作,使小程序开发更简单。
云开发CMS内容管理系统是云开发提供的一个扩展程序,可以在云开发控制台一键安装在自己的云开发环境中,不用编写代码就可以使用,还提供了PC/移动端浏览器访问支持,支持文本、富文本、图片、文件、关联类型等多种类型的可视化编辑。
小程序效果预览:
最终生成的照片如图:
小程序功能的大致思路:
在项目的开发前,应进行以下准备:
一、新建小程序云开发项目,并开通“珊瑚”图片内容安全
其次,由于小程序需要用户上传图片,所以必须使用图片内容安全审查,需要开通:”珊瑚“图片内容安全,(测试阶段选择免费版本资源包即可),地址:
由于图片审核API限制图片经过base64编码的内容。最大不得超过4M,所以此处需要先压缩后调用审核,压缩代码如下:
wx.compressImage({src:path,//图片路径quality:0.8,//压缩质量,根据需求设置success:async(res)=>{resolve({data:res.tempFilePath})}})在页面中调用珊瑚图片内容安全API代码如下:
doImgSecCheck:function(ImageBase64){vard=Date.now()wx.serviceMarket.invokeService({service:'wxee446d7507c68b11',api:'imgSecCheck',data:{"Action":"ImageModeration","Scenes":["PORN","POLITICS","TERRORISM"],"ImageUrl":"","ImageBase64":ImageBase64,"Config":"","Extra":""},}).then(res=>{console.log(JSON.stringify(res))wx.showModal({title:'cost',content:(Date.now()-d)+'',})})},
人脸融合简介
腾讯云神图·人脸融合(FaceFusion)是由腾讯云与优图实验室、天天P图联合打造的AI变脸玩法。通过快速精准地定位人脸关键点,将用户上传的照片与特定形象进行面部层面融合,使生成的图片同时具备用户与特定形象的外貌特征,支持单脸、多脸、选脸融合,满足不同的营销活动需求。
开通前需要准备好我们的素材图,也就是模版图,素材图用途如下:
开通后请点击创建活动,填写活动名称,活动创建完成后如图:
创建活动免费,在程序测试阶段,可以使用活动包含的500次免费调用
活动创建完毕后,在活动列表内点击“素材管理”给活动添加素材,并记录素材ID,例如下图素材对应的是“女文科学士服qc_300380_815359_6”,需要将这些信息通过CMS管理系统添加到小程序数据库,素材ID如下图:
云开发CMS简介:
云开发CMS内容管理系统是云开发CloudBase提供的一个扩展程序,可以在云开发控制台一键安装在自己的云开发环境中,让开发人员和内容运营者随时随地管理小程序/Web等多端产生的内容数据。无须编写代码即可使用,还提供了PC/移动端浏览器的访问支持,支持文本、富文本、Markdown、图片、文件、关联类型等多种类型的可视化编辑。
内容类型新建完毕之后,在“模版图”内容类型下新建条目,填入刚才的素材ID等信息,如图:
保存之后,对应的云数据库如图:
由于本小程序为云开发版本,并没有后台服务器,所以人脸融合API将在云函数完成调用.
首先需要给新建一个云函数“faceMerge”,并在终端为云函数安装腾讯云开发者工具套件(SDK)3.0,
安装如图:
为方便调用,此处将人脸融合API封装,然后通过云函数入口文件main函数调用,如图