最后编辑于2022-12
接口文档:https://ai.baidu.com/ai-doc/FACE/rkpzbh2mv
需要额外申请权限和调用次数哦~
图片美化API
如果您对文档内容有任何疑问,可以通过以下几种方式联系百度AI:
在百度云控制台内 提交工单,咨询问题类型请选择人工智能服务
如有需要讨论的疑问,欢迎进入 AI社区 与其他开发者们一同交流
特效客户交流QQ群:583486416
能力介绍
提供四项高清人像美化能力的api处理方式(美颜、滤镜、五官塑形、美妆),并支持多种文件质量输出。
先看原图和效果图(左侧原图、右侧效果图)
使用的效果:风格值均为1.0
基础滤镜-少女
美妆滤镜-爱心嘴唇
调用的代码
package cn.ydxiaoshuai.sample.aisample.baidu.face;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.io.FileUtil;
import cn.hutool.http.HttpUtil;
import cn.ydxiaoshuai.sample.aisample.baidu.common.BaiDuConts;
import cn.ydxiaoshuai.sample.aisample.baidu.model.FaceBeauty;
import cn.ydxiaoshuai.sample.aisample.baidu.model.FaceBeautyConts;
import cn.ydxiaoshuai.sample.aisample.baidu.model.FaceBeautyResponseBean;
import cn.ydxiaoshuai.util.DealDataUtil;
import com.alibaba.fastjson.JSON;
import java.util.ArrayList;
import java.util.List;
/**
* @author 小帅丶
* @className FaceBeautySample
* @Description 高清人像美化-示例代码
* @Date 2021-07-08-10:26
**/
public class FaceBeautySample {
/** 接口必要的AccessToken */
private static String access_token = "";
/** 图片本地路径 */
private static String imagePath = "F://testimg//0518cut.jpg";
public static void main(String[] args){
FaceBeauty faceBeauty = new FaceBeauty();
faceBeauty.setImage(Base64.encode(FileUtil.readBytes(imagePath)));
FaceBeauty.PropertyBean property = new FaceBeauty.PropertyBean();
List entiretys = new ArrayList<>();
FaceBeauty.PropertyBean.EntiretyBean entirety = new FaceBeauty.PropertyBean.EntiretyBean();
//基础滤镜-少女
entirety.setStyle(FaceBeautyConts.EntiretyStyle.gril);
entirety.setValue(1.0);
entiretys.add(entirety);
List makeups = new ArrayList<>();
FaceBeauty.PropertyBean.MakeupBean makeup = new FaceBeauty.PropertyBean.MakeupBean();
//美妆滤镜
makeup.setKind(FaceBeautyConts.makeupKind.lips);
//爱心嘴唇
makeup.setStyle(FaceBeautyConts.MAKEUP_LIPS.loveLips);
makeup.setValue(1.0);
makeups.add(makeup);
property.setEntirety(entiretys);
property.setMakeup(makeups);
faceBeauty.setProperty(property);
String params = JSON.toJSONString(faceBeauty);
String result = HttpUtil.post(BaiDuConts.FACE_BEAUTY_URL + "?access_token=" + access_token, params);
FaceBeautyResponseBean faceBeautyResponseBean = JSON.parseObject(result, FaceBeautyResponseBean.class);
if (null==faceBeautyResponseBean.getError_code()) {
DealDataUtil.drawImageToFrame(faceBeautyResponseBean.getImage());
} else {
System.out.println("接口出错了 " + faceBeautyResponseBean.getError_code() + "-" +faceBeautyResponseBean.getError_msg());
}
}
}
完整代码可访问:
https://gitee.com/xshuai/interview
Tips:图片保存图片到本地
修改DealDataUtil的base64ToBufferedImage代码
/**
* base64 编码转换为 BufferedImage
* @Author 小帅丶
* @Description base64 编码转换为 BufferedImage
* @Date 2021-07-08 10:55
* @param base64 - 图片的BASE64编码内容
* @return java.awt.image.BufferedImage
**/
public static BufferedImage base64ToBufferedImage(String base64) {
try {
byte[] bytes = Base64.decode(base64);
ByteArrayInputStream byteArrayInputStream
= new ByteArrayInputStream(bytes);
BufferedImage bufferedImage = ImageIO.read(byteArrayInputStream);
//保存到本地目录
File outputfile = new File("F:\\testimg\\20210708.png");
ImageIO.write(bufferedImage, "png", outputfile);
return bufferedImage;
} catch (IOException e) {
log.info("base64ToBufferedImage() 出错了{}", e.getMessage());
return null;
}
}
请登录后评论
TOP
切换版块