From 764d883b5ea3bdc06abbec548b6df0511e567978 Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Tue, 03 Sep 2024 09:46:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/binlog' into binlog

---
 src/main/java/org/springblade/modules/test4j/Test4jController.java |   40 ++++++++++++++++++++++++++++++++++------
 1 files changed, 34 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/springblade/modules/test4j/Test4jController.java b/src/main/java/org/springblade/modules/test4j/Test4jController.java
index 54ffb4a..7aced56 100644
--- a/src/main/java/org/springblade/modules/test4j/Test4jController.java
+++ b/src/main/java/org/springblade/modules/test4j/Test4jController.java
@@ -2,8 +2,11 @@
 
 import io.swagger.annotations.Api;
 import lombok.AllArgsConstructor;
+import net.sourceforge.tess4j.ITesseract;
 import net.sourceforge.tess4j.Tesseract;
+import net.sourceforge.tess4j.TesseractException;
 import org.springblade.core.tool.api.R;
+import org.springblade.modules.test4j.util.Test4jUtil;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -11,6 +14,11 @@
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.imageio.ImageIO;
+import java.awt.*;
+import java.awt.image.BufferedImage;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
 
 @RestController
 @AllArgsConstructor
@@ -20,17 +28,37 @@
 
 	@PostMapping("/read-id")
 	public R readText(@RequestParam("file") MultipartFile file) {
-		// 在这里添加识别文本的代码,例如Tesseract OCR
-		Tesseract tesseract = new Tesseract();
+		try {
+			BufferedImage grayscaleImage = grayscale(ImageIO.read(file.getInputStream()));
+			String text = recognizeText(grayscaleImage);
+			return R.data(text);
+		} catch (IOException e) {
+			e.printStackTrace();
+			return null;
+		}
+	}
+
+	public BufferedImage grayscale(BufferedImage image) {
+		int width = image.getWidth();
+		int height = image.getHeight();
+		BufferedImage result = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_GRAY);
+		Graphics g = result.getGraphics();
+		g.drawImage(image, 0, 0, null);
+		g.dispose();
+		return result;
+	}
+
+	public String recognizeText(BufferedImage image) {
+		ITesseract tesseract = new Tesseract();
 		// 设置Tesseract的路径
 		tesseract.setDatapath("F:\\test4jdata");
 		// 设置为中文简体
 		tesseract.setLanguage("chi_sim");
 		try {
-			String text = tesseract.doOCR(ImageIO.read(file.getInputStream()));
-			return R.data(text);
-		} catch (Exception e) {
-			return R.data(e.getMessage());
+			return tesseract.doOCR(image);
+		} catch (TesseractException e) {
+			e.printStackTrace();
+			return null;
 		}
 	}
 }

--
Gitblit v1.9.3