提交修改

This commit is contained in:
quyixiao 2025-03-15 23:07:13 +08:00
parent ba86741a1b
commit 2d1a953206
9 changed files with 400 additions and 0 deletions

View File

@ -0,0 +1,65 @@
package com.heyu.api.controller.face;
import com.aliyun.facebody20191230.models.FaceBeautyRequest;
import com.aliyun.facebody20191230.models.FaceBeautyResponse;
import com.aliyun.facebody20191230.models.FaceBeautyResponseBody;
import com.heyu.api.alibaba.handle.facebody.AFaceBeautyHandle;
import com.heyu.api.alibaba.request.facebody.AFaceBeautyRequest;
import com.heyu.api.baidu.response.certificate.BSocialSecurityCardResp;
import com.heyu.api.controller.BaseController;
import com.heyu.api.data.annotation.CacheResult;
import com.heyu.api.data.annotation.NotIntercept;
import com.heyu.api.data.utils.ApiR;
import com.heyu.api.data.utils.R;
import com.heyu.api.request.face.DetectCelebrityReq;
import com.heyu.api.request.face.FaceBeautyReq;
import com.heyu.api.resp.face.FaceBeautyResp;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/***
*
*
* https://next.api.aliyun.com/api/facebody/2019-12-30/LiquifyFace
*
*智能瘦脸 LiquifyFace
*
* 功能描述
* 智能瘦脸功能可实现输入一张人物图像输出脸部五官调整瘦脸后的图像 关于该接口功能的示例图如下
*
*
*/
@Slf4j
@RestController
@RequestMapping("/face")
@NotIntercept
public class FaceBeautyController extends BaseController {
@Autowired
private AFaceBeautyHandle afaceBeautyHandle;
@RequestMapping("/beauty")
@CacheResult
public R beauty(FaceBeautyReq req) {
FaceBeautyResp resp = new FaceBeautyResp();
AFaceBeautyRequest aFaceBeautyRequest = new AFaceBeautyRequest();
aFaceBeautyRequest.setImageBase64(req.getImageBase64());
aFaceBeautyRequest.setImageUrl(req.getImageUrl());
aFaceBeautyRequest.setWhite(req.getWhite());
aFaceBeautyRequest.setSharp(req.getSharp());
aFaceBeautyRequest.setSmooth(req.getSmooth());
ApiR<FaceBeautyResponse> aR = afaceBeautyHandle.handle(aFaceBeautyRequest);
if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) {
FaceBeautyResponseBody.FaceBeautyResponseBodyData responseBodyData = aR.getData().getBody().getData();
resp.setImageURL(responseBodyData.getImageURL());
return R.ok().setData(resp);
}
return R.error(aR.getErrorMsg());
}
}

View File

@ -0,0 +1,69 @@
package com.heyu.api.controller.face;
import com.aliyun.facebody20191230.models.FaceMakeupResponse;
import com.aliyun.facebody20191230.models.FaceMakeupResponseBody;
import com.heyu.api.alibaba.handle.facebody.AFaceMakeupHandle;
import com.heyu.api.alibaba.request.facebody.ADetectInfraredLivingFaceRequest;
import com.heyu.api.alibaba.request.facebody.AFaceMakeupRequest;
import com.heyu.api.controller.BaseController;
import com.heyu.api.data.annotation.CacheResult;
import com.heyu.api.data.annotation.NotIntercept;
import com.heyu.api.data.utils.ApiR;
import com.heyu.api.data.utils.R;
import com.heyu.api.request.face.FaceMakeupReq;
import com.heyu.api.resp.face.FaceMakeupResp;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/***
https://next.api.aliyun.com/api/facebody/2019-12-30/FaceMakeup?RegionId=cn-shanghai
人脸美妆
FaceMakeup
*
*
* 应用场景
* 在线试妆可用于在线试妆等虚拟试妆场景用户可体验接近本人真实情况的上妆效果降低商家的运营成本
* 美颜修图可用于手机自拍修图等人像美化场景一键实现美妆效果帮助用户快速打造精致五官提升个人社交形象
* 相机等 APP用于相机类 APP 提升视觉美感增加趣味性
*
*
*/
@Slf4j
@RestController
@RequestMapping("/face")
@NotIntercept
public class FaceMakeupController extends BaseController {
@Autowired
private AFaceMakeupHandle aFaceMakeupHandle;
@RequestMapping("/makeup")
@CacheResult
public R makeup(FaceMakeupReq req) {
FaceMakeupResp faceMakeupResp = new FaceMakeupResp();
AFaceMakeupRequest request = new AFaceMakeupRequest();
request.setImageBase64(req.getImageBase64());
request.setImageUrl(req.getImageUrl());
request.setMakeupType(req.getMakeupType());
request.setStrength(req.getStrength());
request.setResourceType(req.getResourceType());
ApiR<FaceMakeupResponse> aR = aFaceMakeupHandle.handle(request);
if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) {
FaceMakeupResponseBody.FaceMakeupResponseBodyData responseBodyData = aR.getData().getBody().getData();
faceMakeupResp.setImageURL(responseBodyData.getImageURL());
return R.ok().setData(faceMakeupResp);
}
return R.ok();
}
}

View File

@ -0,0 +1,74 @@
package com.heyu.api.controller.face;
import com.aliyun.facebody20191230.models.FaceTidyupRequest;
import com.aliyun.facebody20191230.models.FaceTidyupResponse;
import com.aliyun.facebody20191230.models.FaceTidyupResponseBody;
import com.google.protobuf.Api;
import com.heyu.api.alibaba.handle.facebody.AFaceTidyupHandle;
import com.heyu.api.alibaba.request.facebody.AFaceTidyupRequest;
import com.heyu.api.controller.BaseController;
import com.heyu.api.data.annotation.CacheResult;
import com.heyu.api.data.annotation.NotIntercept;
import com.heyu.api.data.utils.ApiR;
import com.heyu.api.data.utils.R;
import com.heyu.api.request.face.FaceTidyupReq;
import com.heyu.api.resp.face.FaceTidyupResp;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/***
*
*https://next.api.aliyun.com/api/facebody/2019-12-30/FaceTidyup
*
* 人脸美型能力可以对人脸的轮廓和五官进行调整 您也可以通过手动调整美型强度进一步对人脸进行精细化调整 关于该接口功能的示例图如下
*
*
* 应用场景
* 美颜相机对拍摄的照片进行大眼瘦脸瘦下巴嘴型瘦鼻等效果处理提升人物的社交形象
* 相机等 APP用于相机类 APP 提升视觉美感增加趣味性
*
*
*/
@Slf4j
@RestController
@RequestMapping("/face")
@NotIntercept
public class FaceTidyupController extends BaseController {
@Autowired
private AFaceTidyupHandle aFaceTidyupHandle;
/***
*
* @param req
* @return
*/
@RequestMapping("/tidyup")
@CacheResult
public R tidyup(FaceTidyupReq req) {
FaceTidyupResp faceTidyupResp = new FaceTidyupResp();
AFaceTidyupRequest faceTidyupRequest = new AFaceTidyupRequest();
faceTidyupRequest.setImageUrl(req.getImageUrl());
faceTidyupRequest.setImageBase64(req.getImageBase64());
faceTidyupRequest.setStrength(req.getStrength());
faceTidyupRequest.setShapeType(req.getShapeType());
ApiR<FaceTidyupResponse> aR = aFaceTidyupHandle.handle(faceTidyupRequest);
if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) {
FaceTidyupResponseBody.FaceTidyupResponseBodyData responseBodyData = aR.getData().getBody().getData();
faceTidyupResp.setImageURL(responseBodyData.getImageURL());
return R.ok().setData(faceTidyupResp);
}
return R.ok();
}
}

View File

@ -0,0 +1,38 @@
package com.heyu.api.request.face;
import com.heyu.api.request.CommonReq;
import lombok.Data;
/***
*
*
* https://next.api.aliyun.com/api/facebody/2019-12-30/LiquifyFace
*
* 智能瘦脸 LiquifyFace
*/
@Data
public class FaceBeautyReq extends CommonReq {
/**
* 锐化清晰度程度取值范围 0~1越接近 1 锐化程度越高
* <p>
* 示例值:
* 1
*/
public Float sharp = 1f;
/**
* 平滑程度取值范围 0~1越接近 1 平滑程度越高
* <p>
* 示例值:
* 0.1
*/
public Float smooth = 1f;
/**
* 美白程度取值范围 0~1越接近 1 美白程度越高
* <p>
* 示例值:
* 0.3
*/
public Float white = 1f;
}

View File

@ -0,0 +1,37 @@
package com.heyu.api.request.face;
import com.heyu.api.request.CommonReq;
import lombok.Data;
@Data
public class FaceMakeupReq extends CommonReq {
/**
* 美妆类型当前支持 whole整妆
* <p>
* 示例值:
* whole
*/
public String makeupType = "whole";
/**
* 美妆使用的风格具体包括0whole1基础妆2少女妆3活力妆4优雅妆5魅惑妆6梅子妆
* <p>
* 示例值:
* 0
*/
public String resourceType = "0";
/**
* 美妆强度取值范围 01
* <p>
* 示例值:
* 1
*/
public Float strength = 1f;
}

View File

@ -0,0 +1,38 @@
package com.heyu.api.request.face;
import com.heyu.api.request.CommonReq;
import lombok.Data;
/***
* https://next.api.aliyun.com/api/facebody/2019-12-30/FaceMakeup?RegionId=cn-shanghai
*人脸美妆
*
* FaceMakeup
*
*
*
*/
@Data
public class FaceTidyupReq extends CommonReq {
/**
* 表示美型部位包括0颧骨1削脸2瘦脸3脸长4下巴缩短5下巴拉长6瘦下巴7瘦下颌8大眼9眼角 110眼距11拉宽眼距12眼角 213眼睛高度14瘦鼻15鼻翼16鼻长17鼻头长18唇宽19嘴唇大小20唇高21人中
*
* 示例值:
* 0
*/
public Integer shapeType = 2;
/**
* 美型强度取值范围 0~1
*
* 示例值:
* 1
*/
public Float strength = 1f;
}

View File

@ -0,0 +1,27 @@
package com.heyu.api.resp.face;
import com.heyu.api.data.dto.BaseResp;
import lombok.Data;
@Data
public class FaceBeautyResp extends BaseResp {
/***
*
* 瘦脸后图像的 URL 地址
*
* 说明 URL 地址为临时地址有效期为 30 分钟过期后将无法访问若需要长时间或者永久保存文件请在 30 分钟内访问 URL 地址下载文件转存到自己的 OSS 或者其他存储空间
* 示例值:
* http://vibktprfx-prod-prod-aic-gd-cn-shanghai.oss-cn-shanghai.aliyuncs.com/face-liquify/CA1C8937-B30C-15E6-B804-41C357BA413B_5eca_20210923-093411.jpg?Expires=1632391451&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=46apJQVNBz%2FFzDLEYn2M1w9MKA****
*
*
*
*/
private String imageURL;
}

View File

@ -0,0 +1,22 @@
package com.heyu.api.resp.face;
import com.heyu.api.data.dto.BaseResp;
import lombok.Data;
@Data
public class FaceMakeupResp extends BaseResp {
/**
* 人脸美妆结果图像的 URL 地址
*
* 说明 URL 地址为临时地址有效期为 30 分钟过期后将无法访问若需要长时间或者永久保存文件请在 30 分钟内访问 URL 地址下载文件转存到自己的 OSS 或者其他存储空间
* 示例值:
* http://algo-app-taobao-mm-cn-shanghai-prod.oss-cn-shanghai.aliyuncs.com/pixelai-portrait-makeup/2020_03_24/c0f815f46b3df61e_facebeauty.jpg?Expires=1585279130&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=1QkDpev9B7ybzup1MN%2F72kzrKL****
*
*/
private String imageURL;
}

View File

@ -0,0 +1,30 @@
package com.heyu.api.resp.face;
import com.heyu.api.data.dto.BaseResp;
import lombok.Data;
/**
* https://next.api.aliyun.com/api/facebody/2019-12-30/FaceMakeup?RegionId=cn-shanghai
*
*人脸美妆 FaceMakeup
*/
@Data
public class FaceTidyupResp extends BaseResp {
/***
*
* 人脸美妆结果图像的 URL 地址展开详情
*
* 示例值:
* http://algo-app-taobao-mm-cn-shanghai-prod.oss-cn-shanghai.aliyuncs.com/pixelai-portrait-makeup/2020_03_24/c0f815f46b3df61e_facebeauty.jpg?Expires=1585279130&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=1QkDpev9B7ybzup1MN%2F72kzrKL****
*
*
*/
private String imageURL;
}