winter 1 rok temu
rodzic
commit
a48dc5b10a
2 zmienionych plików z 0 dodań i 297 usunięć
  1. +0
    -77
      yqzjCApi/src/main/java/com/iformall/controller/UserBasicImageController.java
  2. +0
    -220
      yqzjService/src/main/java/com/iformall/sm/AiDigitalAvatarHelper.java

+ 0
- 77
yqzjCApi/src/main/java/com/iformall/controller/UserBasicImageController.java Wyświetl plik

@@ -1,77 +0,0 @@
package com.iformall.controller;

import com.iformall.annotation.AuthIgnore;
import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData;
import com.iformall.domain.po.UserBasicImage;
import com.iformall.service.UserBasicImageService;
import com.iformall.sm.AiCheckPhotoParam;
import com.iformall.sm.AiCheckPhotoResult;
import com.iformall.sm.AiDigitalAvatarHelper;
import com.iformall.utils.Base64Util;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;


@RestController
@RequestMapping("/api/userDigital")
@Api(description = "模板接口")
public class UserBasicImageController extends BaseController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired
private UserBasicImageService userBasicImageService;

@ApiOperation("根据id查询接口")
@GetMapping("/findImage")
public ResultData findImage() {
logger.debug("[" + getIpAddr() + "] UserBasicImageController::findImage");

UserBasicImage userBasicImage = userBasicImageService.findById(getMemberId());
return new ResultData(userBasicImage);
}

@ApiOperation("新增接口")
@PostMapping("addImage")
public ResultData addImage(@RequestBody UserBasicImage record) {
logger.debug("[" + getIpAddr() + "] UserBasicImageController::addImage");
userBasicImageService.addImage(getMemberId(),record);
return new ResultData();
}

@AuthIgnore
@ApiOperation("图片人脸检测")
@PostMapping(value = "checkPhoto", consumes = "multipart/*", headers = "content-type=multipart/form-data")
@ApiImplicitParam(name = "file", value = "file", dataType = "MultipartFile", paramType = "query", required = true)
public ResultData checkPhoto(@RequestPart("file") MultipartFile file) {
logger.debug("[" + getIpAddr() + "] UserBasicImageController::checkPhoto");
if (ObjectUtils.isEmpty(file) || file.getSize() <= 0) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "素材为空");
}
try {
byte[] fileBytes = file.getBytes();
String imgStr = Base64Util.encode(fileBytes);
AiCheckPhotoParam param = new AiCheckPhotoParam();
param.setImg(imgStr);
AiCheckPhotoResult result = AiDigitalAvatarHelper.checkPhoto(param);
if (result.isSuccess()) {
return new ResultData();
}
return new ResultData(result.getCode(), result.getMsg());
} catch (IOException e) {
e.printStackTrace();
return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(), "接口请求异常");
}
}


}

+ 0
- 220
yqzjService/src/main/java/com/iformall/sm/AiDigitalAvatarHelper.java Wyświetl plik

@@ -1,220 +0,0 @@
package com.iformall.sm;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.iformall.common.ErrorCode;
import com.iformall.enums.EnumDigitalAvatarMouldType;
import com.iformall.exception.MallinkException;
import com.iformall.utils.Base64Util;
import com.iformall.utils.HttpUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

@Slf4j
@Component
public class AiDigitalAvatarHelper {

public static String digital_avatar;
@Value("${suimang.digital_avatar}")
public void setDigitalAvatar(String digital_avatar){
this.digital_avatar = digital_avatar;
}

public static String digital_avatar_hy;
@Value("${suimang.digital_avatar_hy}")
public void setDigitalAvatarHy(String digital_avatar_hy){
this.digital_avatar_hy = digital_avatar_hy;
}

public static String callbackUrl;
@Value("${suimang.callbackUrl}")
public void setCallbackUrl(String callbackUrl){
this.callbackUrl = callbackUrl;
}

//智象小程序人脸检测
public static AiCheckPhotoResult checkPhoto(AiCheckPhotoParam param) {
// String response = HttpUtil.doAiVideoPost("http://nas.pucao.cn:2005/dec_face", JSONObject.toJSONString(param));
String response = HttpUtil.doAiVideoPost(digital_avatar + "/dec_face", JSONObject.toJSONString(param));
log.info("图片人脸检测 end response:" + response);
AiCheckPhotoResult result = new AiCheckPhotoResult();

if (StringUtils.isBlank(response)) {
result.setSuccess(false);
result.setMsg("(MetaService)图片人脸检测失败,请稍后重试");
return result;
}
JSONObject jsonObject = JSON.parseObject(response);
JSONObject status = jsonObject.getJSONObject("status");
Integer code = status.getInteger("code");
String msg = status.getString("msg");
if (code == null) {
result.setSuccess(false);
result.setMsg("(MetaService)图片人脸检测失败,请稍后重试");
return result;
}
if (code.intValue() == 1000) {
result.setCode(code);
result.setSuccess(true);
result.setMsg(msg);
} else {
result.setCode(code);
result.setSuccess(false);
result.setMsg(msg);
}
return result;
}

//智象小程序生成
public static DigitalAvatarResult digitalAvatarPhoto(DigitalAvatarParam param,Long taskId) {

param.setTask_id(taskId);
// param.setCallback_url("https://phototest.metavatar.cc/C/callback/create/photo");
param.setCallback_url(callbackUrl + "/callback/create/photo");
// log.info("生成照片start request:" + param.getBg_img());
// String response = HttpUtil.doAiVideoPost("http://http://111.198.0.15:22200/make_face", JSONObject.toJSONString(param));
String response = HttpUtil.doAiVideoPost(digital_avatar + "/make_face", JSONObject.toJSONString(param));
log.info("生成照片end response:");

DigitalAvatarResult result = new DigitalAvatarResult();

if(StringUtils.isBlank(response)){
result.setSuccess(false);
result.setMsg("[metavatar]请求异常,请稍后重试");
return result;
}

JSONObject jsonObject = JSON.parseObject(response);
JSONObject status = jsonObject.getJSONObject("status");
Integer code = status.getInteger("code");
if(code == null){
result.setSuccess(false);
result.setMsg("[metavatar]请求异常,请稍后重试");
return result;
}

if(code.intValue() == 2000){
result.setSuccess(true);
result.setMsg("success");

JSONObject data = jsonObject.getJSONObject("data");
List<String> imgList = new ArrayList<>();
imgList.add(data.getString("fusion_img1"));
imgList.add(data.getString("roop_img1"));
imgList.add(data.getString("fusion_img2"));
imgList.add(data.getString("roop_img2"));
imgList.add(data.getString("fusion_img3"));
imgList.add(data.getString("roop_img3"));
imgList.add(data.getString("fusion_img4"));
imgList.add(data.getString("roop_img4"));
result.setImgList(imgList);
}else{
result.setSuccess(false);
result.setMsg("[metavatar]"+status.getString("msg"));
}
return result;

}

public static SuperImgResult superImg(SuperImgParam param,Long taskId) {
param.setTask_id(taskId);
// param.setCallback_url("https://phototest.metavatar.cc/C/callback/create/photo");
param.setCallback_url(callbackUrl + "/callback/super/photo");
// log.info("生成照片start request:" + param.getBg_img());
String response = HttpUtil.doAiVideoPost(digital_avatar_hy + "/sr_img", JSONObject.toJSONString(param));
log.info("照片超分end response:");

SuperImgResult result = new SuperImgResult();

if(StringUtils.isBlank(response)){
result.setSuccess(false);
result.setMsg("[metavatar]请求异常,请稍后重试");
return result;
}

JSONObject jsonObject = JSON.parseObject(response);
JSONObject status = jsonObject.getJSONObject("status");
Integer code = status.getInteger("code");
if(code == null){
result.setSuccess(false);
result.setMsg("[metavatar]请求异常,请稍后重试");
return result;
}

if(code.intValue() == 3000){
result.setSuccess(true);
result.setMsg("success");
JSONObject data = jsonObject.getJSONObject("data");
result.setImg(data.getString("img"));
}else{
result.setSuccess(false);
result.setMsg("[metavatar]"+status.getString("msg"));
}
return result;

}

//智象小程序生成logo
public static ShareImgResult createShareImg(ShareImgParam param) {

// log.info("生成照片start request:" + param.getBg_img());
String response = HttpUtil.doAiVideoPost(digital_avatar + "/logo_img", JSONObject.toJSONString(param));
log.info("生成照片end response:"+response);

ShareImgResult result = new ShareImgResult();

if(StringUtils.isBlank(response)){
result.setSuccess(false);
result.setMsg("[metavatar]请求异常,请稍后重试");
return result;
}

JSONObject jsonObject = JSON.parseObject(response);
JSONObject status = jsonObject.getJSONObject("status");
Integer code = status.getInteger("code");
if(code == null){
result.setSuccess(false);
result.setMsg("[metavatar]请求异常,请稍后重试");
return result;
}

if(code.intValue() == 4000){
result.setSuccess(true);
result.setMsg("success");
JSONObject data = jsonObject.getJSONObject("data");
result.setImg(data.getString("img"));
}else{
result.setSuccess(false);
result.setMsg("[metavatar]"+status.getString("msg"));
}
return result;

}

public static void main(String[] args) {
// AiCheckPhotoParam param = new AiCheckPhotoParam();
// String img = Base64Util.imageUrlToBase64("https://suimang.oss-accelerate.aliyuncs.com/builtin/personmould/16760216806604820_cSHoijDX_grace_1080.jpg");
// param.setImg(img);
// AiCheckPhotoResult result = AiDigitalAvatarHelper.checkPhoto(param);
// System.out.println(result);


// DigitalAvatarParam param = new DigitalAvatarParam();
// param.setBg_img("素白");
// String img = Base64Util.imageUrlToBase64("https://suimang.oss-accelerate.aliyuncs.com/capi/2023-08-31/91f69a7fdac146159d2408baaad26619.jpg?x-oss-process=image/resize,w_10000/quality,q_60");
// param.setImg_lift(img);
// param.setImg_middle("None");
// param.setImg_right("None");
// DigitalAvatarResult result = AiDigitalAvatarHelper.digitalAvatarPhoto(param,100001l);
// System.out.println(result);


}


}

Ładowanie…
Anuluj
Zapisz