微软颜值测评API学习使用

在线测评地址http://kan.msxiaobing.com/ImageGame/Portal?task=howold
这里写图片描述

这里写图片描述

1.将照片base64编码

 /**
      * 用于将图片文件base64编码返回串
      * @param imgFile  图片文件路径
      * @return base64编码之后的串
      */
     public static String getBase64Str(String imgFile){
         //将图片文件转化为字节数组字符串,并对其进行Base64编码处理
         InputStream in = null;
         byte[] data = null;
         //读取图片字节数组
         try 
         {
             in = new FileInputStream(imgFile);        
             data = new byte[in.available()];
             in.read(data);
             in.close();
         } 
         catch (IOException e) 
         {
             e.printStackTrace();
         }
        return new String(Base64.encodeBase64(data));
    }

2.将编码信息上传到微软服务器,并接收返回结果

请求地址:http://kan.msxiaobing.com/Api/Image/UploadBase64

/**
      *   上传图片数据到微软服务器
      *  @param imgPath 要测评的图片路径
      * @return 上传服务器成功后返回的Host,url的json数据
      */
     public static JSONObject Upload(String imgPath){
         String base64Str = getBase64Str(imgPath);
         //打印照片信息
         System.out.print(imgPath.substring(imgPath.lastIndexOf("\\")+1).replaceAll(".jpg",""));
        //System.out.println("base64Str:"+base64Str);
         String result= ColorValueTestUtils.sendPost("http://kan.msxiaobing.com/Api/Image/UploadBase64",base64Str);
         //System.out.println("上传结果:"+result);
         JSONObject jsonObject= JsonOperatorUtil.toJSONObject(result);
         return jsonObject;

     }

3.对json结果解析,获取图片地址信息

        JSONObject jsonObject  = Upload(filePath);
        String Host = jsonObject.get("Host").toString();
        String Url = jsonObject.get("Url").toString();

4.再发起颜值测试请求

 public static Map<String,String> getScore(String Host,String Url){
         Map<String,String> resultMap = new HashMap<String,String>();

         String map = "Content%5BimageUrl%5D="+Host+Url;
         String result= ColorValueTestUtils.sendPost("http://kan.msxiaobing.com/Api/ImageAnalyze/Process?service=yanzhi",map);
         //System.out.println(result);
         JSONObject jsonObject= JsonOperatorUtil.toJSONObject(result);
         if(jsonObject!=null){
             JSONObject content = (JSONObject) jsonObject.get("content");
             String comments = content.get("text").toString();
             System.out.println("评分结果结果:\n\t"+comments);
             Pattern p = Pattern.compile("(\\d.\\d分)|(\\d.\\d)");
             Matcher m = p.matcher(comments);
             String value_score = "";
             if(m.find()) {
                 value_score =  m.group(0);           
                } 
             resultMap.put("value_score", value_score);
             resultMap.put("comments", comments);
         }else{
             System.out.println("评分异常! \n\t ~你上传的可能不是人像吧");
         }
         return resultMap;
     }

效果:

这里写图片描述
PC端午网页测试
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值