當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Spring Cloud——基于OpenFeign调用PaddleOCR的Restful API服务解决方案
生活随笔
收集整理的這篇文章主要介紹了
Spring Cloud——基于OpenFeign调用PaddleOCR的Restful API服务解决方案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
PaddleOCR的Restful API服務部屬
Docker化部署服務
PaddleOCR——Docker環境下基于HubServing模式部署Restful API服務(CPU版本)?
Maven
<dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Hoxton.SR8</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.2.5.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!--Hutool: A set of tools that keep Java sweet.--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.5.8</version></dependency></dependencies>?
解決方案
OpenFeign調用接口?
@FeignClient(name="OCRService", url="127.0.0.1:8866") public interface IOCRService {@RequestMapping(value = "/predict/ocr_system",method = RequestMethod.POST)Object ocr(ImageDTO images); }接口參數DTO封裝?
@Data public class ImageDTO {private List<String> images; }?Controller
@RestController public class OCRController {private final IOCRService iocrService;public OCRController(IOCRService iocrService) {this.iocrService = iocrService;}@RequestMapping(value = "/ocr",method = {RequestMethod.POST})public Object ocr(MultipartFile[] file){try {String s =ImageBase64Encoder.encode(file[0].getInputStream());List<String> list = new ArrayList<>();list.add(s);ImageDTO dto= new ImageDTO();dto.setImages(list);return iocrService.ocr(dto);} catch (IOException e) {e.printStackTrace();}return null;} }工具類:
import cn.hutool.core.codec.Base64Encoder;import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.Objects;/*** 圖片Base64編碼*/ public class ImageBase64Encoder {/*** 將圖片轉為Base64編碼字符串* @param imgPath 圖片路徑* @return Base64編碼字符串*/public static String encode(String imgPath) throws FileNotFoundException {return encode(new FileInputStream(imgPath));}/*** 將圖片轉為Base64編碼字符串* @param in 圖片輸入流* @return Base64編碼字符串*/public static String encode(InputStream in) {byte[] data = null;// 讀取圖片字節數組try {data = new byte[in.available()];int res = in.read(data);in.close();} catch (IOException e) {e.printStackTrace();}/**對字節數組Base64編碼*返回Base64編碼過的字節數組字符串;*/return Base64Encoder.encode(Objects.requireNonNull(data));}}參考文章
總結
以上是生活随笔為你收集整理的Spring Cloud——基于OpenFeign调用PaddleOCR的Restful API服务解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PaddlePaddle——手写数字识别
- 下一篇: MyBatis Plus——分页插件【P