1.这是从本地上传图片,本质是将上传的图片转换为base64后进行解析
首先导入pom依赖
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.9.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.13</version>
</dependency>
接口实现
@PostMapping("/recognize-img")
@Operation(summary = "图片文字识别",description = "图片识别")
public String recognizeImage(@RequestParam("file") MultipartFile file) {
try {
// 将文件转换为 Base64 编码并进行 OCR 识别
String base64Image = baiduOcrService.convertToBase64(file,true);
return baiduOcrService.recognizeImage(base64Image);
} catch (IOException e) {
e.printStackTrace();
return "Error occurred while recognizing image.";
}
}
这是OCR的实现过程
package com.jt.console.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.jt.common.beans.ServiceAssert;
import okhttp3.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.Base64;
import java.util.List;
import java.util.Arrays;
/**
* 百度OCR识别实现类
*/
@Service("baiduOcrServiceImpl")
public class BaiduOcrServiceImpl {
@Value("${baidu.ocr.apiKey}")
private String API_KEY; // 客户端id
@Value("${baidu.ocr.secretKey}")
private String SECRET_KEY; // 客户端秘钥
// 支持的图片格式列表
private static final List<