微软颜值测评API学习使用

在线测评地址:http://kan.msxiaobing.com/ImageGame/Portal?task=howold

微软颜值测评API学习使用_第1张图片

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;
     }

效果:

微软颜值测评API学习使用_第2张图片
PC端午网页测试
微软颜值测评API学习使用_第3张图片

你可能感兴趣的:(小工具,学习)