调用第三方接口实现照片美颜功能
2019-06-28 本文已影响0人
闲置的Programmer
1、找到一个合适的第三方平台,我们公司是用的相芯科技的美颜接口
2、进入该公司后台系统,打开该公司的API文档

3、按照第三方平台的文档进行接口调用,首先获取一个永久签名,他们提供了有一个获取签名的命令行工具,下面是要执行的命令,输入之后会给你返回你所要的签名


4、之后就可以在代码中去调用接口实现美颜了。阅读文档可以看到,调用美颜接口之前,需要先获取一个token,提供获取token的接口所要的参数就是我们的key和获取的签名

5、然后我们在用刚刚获取的token和所需要的图片入参,进行照片美颜。

图片是必须form-data类型的参数,接口是https类型,返回的参数可以在API文档中进行查看。
6、美颜接口的参数是form-data的图片,如果是网络图片的话需要先保存在本地。然后通过访问本地路径的方式来进行传输,将图片保存在本地这种操作在服务器上也是可以操作的,比如在本地是F:\work,在服务器上就是 data/tomcat/faceimg,如果怕图片并发量大的话可以加上锁,美颜完后上传到分布式存储,就可以把本地的图片删掉了。
// 删除指定文件夹下所有文件
// param path 文件夹完整绝对路径
public static boolean delAllFile(String path) {
boolean flag = false;
File file = new File(path);
if (!file.exists()) {
return flag;
}
if (!file.isDirectory()) {
return flag;
}
String[] tempList = file.list();
File temp = null;
for (int i = 0; i < tempList.length; i++) {
if (path.endsWith(File.separator)) {
temp = new File(path + tempList[i]);
} else {
temp = new File(path + File.separator + tempList[i]);
}
if (temp.isFile()) {
temp.delete();
}
if (temp.isDirectory()) {
delAllFile(path + "/" + tempList[i]);// 先删除文件夹里面的文件
flag = true;
}
}
return flag;
}