【Java】【高清人像美化】PC端AI修图
756665228 发布于2021-07 浏览:4604 回复:0
2
收藏
最后编辑于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;
        }
    }

收藏
点赞
2
个赞
TOP
切换版块