首页>代码>百度云、有道云OCR图片文字通用识别,spring boot项目实现>/src/main/java/com/yafengliang/baidu/controller/GeneralController.java
package com.yafengliang.baidu.controller;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yafengliang.baidu.model.GeneralOcr;
import com.yafengliang.baidu.model.WordsResult;
import com.yafengliang.baidu.util.Base64Util;
import com.yafengliang.baidu.util.FileUtil;
import com.yafengliang.baidu.util.HttpUtil;
import com.yafengliang.api.AuthService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import java.io.InputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;

/**
 * @Author : yafengliang
 * @Description: 通用识别
 * @Date : 2020-12-04 14:59
 **/
@Controller
@Slf4j
public class GeneralController {

    //百度通用 OCR_URL
    public static String GENERAL_OCR_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic";
    //百度获取 ACCESS_TOKEN
    public static String ACCESS_TOKEN = AuthService.getAuth();



    @RequestMapping(value = {"/baidu"})
    public String toIndex(){
        return "baidu";
    }

    @RequestMapping(value="/baiDuMsg", method= RequestMethod.POST)
    @ResponseBody
    public GeneralOcr upload(MultipartHttpServletRequest fileRequest){
        MultipartFile file = fileRequest.getFile("file");
        try {
            InputStream in = file.getInputStream();
            byte[] bytes = FileUtil.getFileBytes(in);
            String imgStr = Base64Util.encode(bytes);
            String params = URLEncoder.encode("image","UTF-8")+ "=" + URLEncoder.encode(imgStr,"UTF-8");
            String result = HttpUtil.post(GENERAL_OCR_URL,ACCESS_TOKEN,params);
            log.info("识别结果:{}", result);
            JSONObject jsonObject = JSONObject.parseObject(result);
            GeneralOcr generalOcr = new GeneralOcr();
            String log_id = jsonObject.getString("log_id");
            generalOcr.setLogid(log_id);
//            String words_result_num = jsonObject.getString("words_result_num");
//            generalOcr.setResultnum(Integer.valueOf(words_result_num));
            String words_result = jsonObject.getString("words_result");
            JSONArray jsonArray = JSON.parseArray(words_result);
            List<WordsResult> list = new ArrayList<>();
            StringBuilder sb = new StringBuilder();
            for (Object obj : jsonArray) {
                JSONObject object = JSONObject.parseObject(obj.toString());
                String words = object.getString("words");
                sb.append(words);
            }
            generalOcr.setResultwords(sb.toString());
//            log.info("GeneralResult:{}",generalOcr.toString());
            return generalOcr;
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }

}
最近下载更多
柒月只是个码农  LV4 2023年8月29日
我真的是小明  LV10 2023年3月21日
xopomo  LV1 2023年3月10日
kevinyu168  LV1 2022年1月10日
刘强一  LV13 2021年10月28日
戒烟失败  LV3 2021年5月13日
lifanfanfan  LV5 2021年4月22日
kakaka21  LV3 2021年2月8日
bflcf  LV6 2021年1月5日
Web项目聚集地  LV24 2021年1月3日
最近浏览更多
新哥新奇士橙  LV4 1月26日
444105047  LV6 2024年11月27日
周周快乐快乐 2024年9月8日
暂无贡献等级
TY0165  LV20 2024年6月19日
kiliny 2024年6月5日
暂无贡献等级
3334004690  LV10 2024年5月28日
kenhomeliu  LV29 2024年4月30日
tr1314qq  LV17 2024年2月5日
haozhilang  LV9 2023年10月23日
柒月只是个码农  LV4 2023年8月29日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友