提交修改

This commit is contained in:
quyixiao 2025-03-16 15:18:27 +08:00
parent 67656e3466
commit db5a25228e
6 changed files with 221 additions and 0 deletions

View File

@ -0,0 +1,68 @@
package com.heyu.api.controller.face;
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.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.FaceBeauty4Req;
import com.heyu.api.resp.face.FaceBeauty4Resp;
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/FaceBeauty?RegionId=cn-shanghai
*
*人脸美颜
*
*
*
FaceBeauty
功能描述
人脸美颜能力可以对图像中的人脸进行美颜产品支持以下功能
人脸美颜磨皮美白锐化清晰度平滑度等
参数调整可自定义调整参数提升个人形象
*/
@Slf4j
@RestController
@RequestMapping("/face")
@NotIntercept
public class FaceBeauty4Controller extends BaseController {
@Autowired
private AFaceBeautyHandle aFaceBeautyHandle;
@RequestMapping("/beauty4")
@CacheResult
public R beauty4(FaceBeauty4Req req) {
FaceBeauty4Resp resp = new FaceBeauty4Resp();
AFaceBeautyRequest aFaceBeautyRequest = new AFaceBeautyRequest();
aFaceBeautyRequest.setSmooth(req.getSmooth());
aFaceBeautyRequest.setWhite(req.getWhite());
aFaceBeautyRequest.setImageUrl(req.getImageUrl());
aFaceBeautyRequest.setImageBase64(req.getImageBase64());
aFaceBeautyRequest.setSharp(req.getSharp());
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,56 @@
package com.heyu.api.controller.face;
import com.aliyun.facebody20191230.models.RecognizeHandGestureResponse;
import com.aliyun.facebody20191230.models.RecognizeHandGestureResponseBody;
import com.heyu.api.alibaba.handle.facebody.ARecognizeHandGestureHandle;
import com.heyu.api.alibaba.request.facebody.ARecognizeHandGestureRequest;
import com.heyu.api.controller.BaseController;
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.RecognizeHandGestureReq;
import com.heyu.api.resp.face.RecognizeHandGestureResp;
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/RecognizeHandGesture?RegionId=cn-shanghai
*
*静态手势识别
*
* RecognizeHandGesture
*/
@Slf4j
@RestController
@RequestMapping("/hand/gesture")
@NotIntercept
public class RecognizeHandGestureController extends BaseController {
@Autowired
private ARecognizeHandGestureHandle arRecognizeHandGestureHandle;
@RequestMapping("/recognize")
public R recognize(RecognizeHandGestureReq req) {
RecognizeHandGestureResp resp = new RecognizeHandGestureResp();
ARecognizeHandGestureRequest arRecognizeHandGestureRequest = new ARecognizeHandGestureRequest();
arRecognizeHandGestureRequest.setImageBase64(req.getImageBase64());
arRecognizeHandGestureRequest.setImageUrl(req.getImageUrl());
ApiR<RecognizeHandGestureResponse> aR = arRecognizeHandGestureHandle.handle(arRecognizeHandGestureRequest);
if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) {
RecognizeHandGestureResponseBody.RecognizeHandGestureResponseBodyData responseBodyData = aR.getData().getBody().getData();
resp.setType(responseBodyData.getType());
resp.setScore(responseBodyData.getScore());
return R.ok().setData(resp);
}
return R.error();
}
}

View File

@ -0,0 +1,38 @@
package com.heyu.api.request.face;
import com.heyu.api.request.CommonReq;
import lombok.Data;
@Data
public class FaceBeauty4Req 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,13 @@
package com.heyu.api.request.face;
import com.heyu.api.request.CommonReq;
import lombok.Data;
/***
*
*/
@Data
public class RecognizeHandGestureReq extends CommonReq {
}

View File

@ -0,0 +1,9 @@
package com.heyu.api.resp.face;
import com.heyu.api.resp.CommonImageUrlResp;
import lombok.Data;
@Data
public class FaceBeauty4Resp extends CommonImageUrlResp {
}

View File

@ -0,0 +1,37 @@
package com.heyu.api.resp.face;
import com.heyu.api.data.dto.BaseResp;
import lombok.Data;
@Data
public class RecognizeHandGestureResp extends BaseResp {
/***
* 手势类型
*
* bg无法识别的手势
* ok确认
* palm手掌
* left握拳且大拇指向左
* right握拳且大拇指向右
* good点赞即握拳且大拇指向上
* mute噤声将食指放在嘴上即被识别为噤声
* down握拳且大拇指向下
* 示例值:
* right
*/
private String type;
/***
* 识别置信度范围 0~1
*
* 示例值:
* 0.921875
*
*/
private Float score;
}