|
- 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 {
-
- private static String digital_avatar;
- @Value("${photo.digital_avatar}")
- public void setDigitalAvatar(String digital_avatar){
- this.digital_avatar = digital_avatar;
- }
-
- private static String callbackUrl;
- @Value("${photo.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://nas.pucao.cn:2005/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("img_0"));
- imgList.add(data.getString("img_1"));
- imgList.add(data.getString("img_2"));
- imgList.add(data.getString("img_3"));
- result.setImgList(imgList);
- }else{
- result.setSuccess(false);
- result.setMsg("[metavatar]"+status.getString("msg"));
- }
- return result;
-
- }
-
- public static SuperImgResult superImg(SuperImgParam param) {
-
- // log.info("生成照片start request:" + param.getBg_img());
- String response = HttpUtil.doAiVideoPost(digital_avatar + "/sr_img", JSONObject.toJSONString(param));
- log.info("照片超分end response:"+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;
-
- }
-
- 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("style_threeface");
- // String img = Base64Util.imageUrlToBase64("https://suimang.oss-accelerate.aliyuncs.com/builtin/personmould/16760216806604820_cSHoijDX_grace_1080.jpg");
- // param.setImg_lift(img);
- // param.setImg_middle(img);
- // param.setImg_right(img);
- // DigitalAvatarResult result = AiDigitalAvatarHelper.digitalAvatarPhoto(param,100001l);
- // System.out.println(result);
- }
-
-
- }
|