diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/face/FaceBeautyController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/face/FaceBeautyController.java new file mode 100644 index 0000000..7c72d17 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/face/FaceBeautyController.java @@ -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 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()); + } +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/face/FaceMakeupController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/face/FaceMakeupController.java new file mode 100644 index 0000000..06eacc6 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/face/FaceMakeupController.java @@ -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 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(); + } + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/face/FaceTidyupController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/face/FaceTidyupController.java new file mode 100644 index 0000000..bfd158b --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/face/FaceTidyupController.java @@ -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 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(); + } + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/request/face/FaceBeautyReq.java b/api-web/api-interface/src/main/java/com/heyu/api/request/face/FaceBeautyReq.java new file mode 100644 index 0000000..a618377 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/request/face/FaceBeautyReq.java @@ -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 锐化程度越高。 + *

+ * 示例值: + * 1 + */ + public Float sharp = 1f; + /** + * 平滑程度,取值范围 0~1。越接近 1 平滑程度越高。 + *

+ * 示例值: + * 0.1 + */ + public Float smooth = 1f; + /** + * 美白程度,取值范围 0~1。越接近 1 美白程度越高。 + *

+ * 示例值: + * 0.3 + */ + public Float white = 1f; + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/request/face/FaceMakeupReq.java b/api-web/api-interface/src/main/java/com/heyu/api/request/face/FaceMakeupReq.java new file mode 100644 index 0000000..865cd02 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/request/face/FaceMakeupReq.java @@ -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(整妆)。 + *

+ * 示例值: + * whole + */ + public String makeupType = "whole"; + + /** + * 美妆使用的风格,具体包括:0(whole)、1(基础妆)、2(少女妆)、3(活力妆)、4(优雅妆)、5(魅惑妆)、6(梅子妆)。 + *

+ * 示例值: + * 0 + */ + public String resourceType = "0"; + + /** + * 美妆强度,取值范围 0~1。 + *

+ * 示例值: + * 1 + */ + public Float strength = 1f; + + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/request/face/FaceTidyupReq.java b/api-web/api-interface/src/main/java/com/heyu/api/request/face/FaceTidyupReq.java new file mode 100644 index 0000000..b767c40 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/request/face/FaceTidyupReq.java @@ -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(眼角 1)、10(眼距)、11(拉宽眼距)、12(眼角 2)、13(眼睛高度)、14(瘦鼻)、15(鼻翼)、16(鼻长)、17(鼻头长)、18(唇宽)、19(嘴唇大小)、20(唇高)、21(人中)。 + * + * 示例值: + * 0 + */ + public Integer shapeType = 2; + + /** + * 美型强度,取值范围 0~1。 + * + * 示例值: + * 1 + */ + public Float strength = 1f; + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/face/FaceBeautyResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/face/FaceBeautyResp.java new file mode 100644 index 0000000..7d33cc2 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/face/FaceBeautyResp.java @@ -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; + + + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/face/FaceMakeupResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/face/FaceMakeupResp.java new file mode 100644 index 0000000..9a2f943 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/face/FaceMakeupResp.java @@ -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; + + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/face/FaceTidyupResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/face/FaceTidyupResp.java new file mode 100644 index 0000000..72bf909 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/face/FaceTidyupResp.java @@ -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; + + + + +}