腾讯AI优图AI开放平台 OCR Java SDK 下载

腾讯AI优图AI开放平台 OCR Java SDK 下载

public class TencentAISDK {

    public static String genSignString(Map<String, String> parser) {
        String uri_str = "";

        Map<String, String> map = new TreeMap<String, String>();
        map.putAll(parser);

        Set<String> keySet = map.keySet();
        Iterator<String> iter = keySet.iterator();
        while (iter.hasNext()) {
            String key = iter.next();
            System.out.println(key + ":" + map.get(key));
            if (key.equalsIgnoreCase("app_key"))
                continue;

            String encode = "";
            try {
                String value = parser.get(key);
                encode = URLEncoder.encode(value, "UTF-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            uri_str = uri_str + key + "=" + encode + "&";
        }
        String sign_str = uri_str + "app_key=" + parser.get("app_key");
        System.out.println("-----urlencode_str:" + sign_str);
        sign_str = conVertTextToMD5(sign_str).toUpperCase();
        System.out.println("-----sign_str:" + sign_str);
        return sign_str;

    }

    // 计算字符串的MD5
    public static String conVertTextToMD5(String plainText) {
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(plainText.getBytes());
            byte b[] = md.digest();

            int i;

            StringBuffer buf = new StringBuffer("");
            for (int offset = 0; offset < b.length; offset++) {
                i = b[offset];
                if (i < 0)
                    i += 256;
                if (i < 16)
                    buf.append("0");
                buf.append(Integer.toHexString(i));
            }
            // 32位加密
            return buf.toString();
            // 16位的加密
            // return buf.toString().substring(8, 24);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
            return null;
        }

    }


    public static Integer DateToTimestamp(Date time) {
        Timestamp ts = new Timestamp(time.getTime());

        return (int) ((ts.getTime()) / 1000);
    }
}
public class TencentSDKTest {
    public static void main(String[] args) {

        TencentAISDK tsdk = new TencentAISDK();

        Map params = new HashMap<String, String>();

        params.put("app_id", "11111111");
        params.put("app_key", "111111111");
        String time_string = String.valueOf(TencentAISDK.DateToTimestamp(new Date()));
        params.put("time_stamp", time_string);
        params.put("nonce_str", time_string);
        Base64ImgUtil imgutl = new Base64ImgUtil();
        String base64 = Base64ImgUtil.GetImageStr("C:\\b84.jpg");
        
        InputStream in = null;
        byte[] data = null;
        // 读取图片字节数组
        try {
          in = new FileInputStream("C:\\b84.jpg");
          data = new byte[in.available()];
          in.read(data);
          in.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
        
        Base64Util b64 = new Base64Util();
        String b64str = b64.encode(data);
        params.put("image", b64str);
        params.put("sign", TencentAISDK.genSignString(params));

        // 打开和URL之间的连接
        try {
            HttpUtils util = new HttpUtils();
            String result = HttpUtils.sendPostToOtherServer("https://api.ai.qq.com/fcgi-bin/ocr/ocr_generalocr", params);
            System.out.println("result:"+ result);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

猜你喜欢

转载自www.cnblogs.com/difs/p/10642135.html