前两日闲来无事,偶然翻到腾讯云新出了个人脸试妆,更神奇的是,其中还有一个人脸美化的接口。仔细一看,原来只需要base64格式的图片以及调节参数,看起来简单的很。只要再套用一个简单地GUI,一个简单地人脸美化软件就新鲜出炉了。

一、套用GUI
由于我之前写过其他的程序,所以手里有现成的GUI代码,还包括软件信息以及使用提示,只需Copy过来稍加修改即可。

局部GUI代码
二、调用官方SDK
腾讯云还是良心的,一整套的官方SDK,涵盖了多种语言,还提供了在线调用用于测试,唯一一点需要吐槽的,就是整个SDK有点大。对于腾讯而言将更多的功能打包在一起的确可以在某些方面方便客户,但对于我这样的新手小白再加上打包需求来说并不友好,这点最后还会再吐槽的。


对了,说到这必须要温馨小提示一句,上传GitHub的时候千万不要泄露自己的密钥,我也是踩过坑才知道的。就是有一点好奇,腾讯云和GitHub是怎么在第一时间知道我把密钥上传了的,难不成他们全网爬虫?
三、图片处理
图片传输有两种方式,一种是简单暴力直接上网址,另一种则是以Base64格式传输,网址这种方式虽然简便,但在平时生活中的使用场景较少,个人感觉并不实用,除非配合腾讯云的其他云服务。而我果断的选择了Base64编码,也因为之前在打包别的软件时稍稍的有所接触,对于Base64编码并不算十分陌生。

Base64编解码代码
四、整体调试
这一步貌似是废话。。。但其实还是蛮费时间的,有很多的小细节需要一一确定。比如文件地址确定,返回图片编码截取以及返回错误码处理等等,这些小地方才是最容易出bug的,毕竟大块要么直接套用代码,要么网上有教程。
五、软件打包
虽然已经打包过几个小软件了,但这次才是真的最意想不到的一次。有两个致命的地方,一是腾讯云第三方库,二是莫名其妙的numpy+mkl。之前并未打包过含有第三方库的软件,导致这次研究了好半天才明白第三方库是要用pyinstaller *.spec方式并在*.spec文件内编辑第三方库位置才可以。二就是这次莫名出现的numpy+mkl问题,排查了很久也没发现我引用这两个库,但在打包的过程中偏偏就是打包了这两个库,其实我也不是多追求软件精简的人,最主要的是这两个库的动态文件实在是太大了,尤其是mkl的库,200+MB,这不是扯淡吗?而且网上找了一圈也没找到解决方案,还算靠谱的方法就是卸载Anaconda自带库中的相关模块,目前也只能这样了。
- 后记
因为这项功能还处于内测中,所以现在处于免费阶段,想体验的朋友可以试试,上手容易,可以打造出属于自己的「美图秀秀」,就算后期开放公测,我相信腾讯云还是会留出一定的免费额度,对于个人用户而言应该是足够了的。
不过,我还是想要吐槽一下这个人脸美化的,虽然看起来可调参数很多,美白、磨皮、瘦脸、大眼四项参数,但实际上调节效果肉眼难辨。。。尤其是按照官方的默认参数调节,基本上算是没有变化吧。也可能我是个糙人,但这个和美图秀秀那种大变脸还是差远了,贴下对比图,见仁见智吧。

原图 默认参数 最大参数
图片来自于网络,侵删
- 相关资料
