From f981c1f30461ef9a40a39338aa77e511ffc24d1f Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期二, 21 一月 2025 16:56:39 +0800 Subject: [PATCH] 1 --- ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/orc/OcrUtils.java | 22 ++++++++++++++++++++-- 1 files changed, 20 insertions(+), 2 deletions(-) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/orc/OcrUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/orc/OcrUtils.java index 36f8a37..6e0d145 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/orc/OcrUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/orc/OcrUtils.java @@ -1,13 +1,17 @@ package com.ruoyi.common.core.utils.orc; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; import com.aliyun.ocr_api20210707.models.RecognizeAllTextRequest; import com.aliyun.ocr_api20210707.models.RecognizeAllTextResponse; import com.aliyun.tea.TeaException; import com.aliyun.tea.TeaModel; +import com.aliyun.teautil.Common; import com.aliyun.teautil.models.RuntimeOptions; import com.ruoyi.common.core.utils.UrlDownloader; import java.io.InputStream; +import java.util.Map; public class OcrUtils { @@ -34,7 +38,7 @@ /** * 证件识别 */ - public static String idCard(InputStream bodyStream) throws Exception { + public static JSONObject idCard(InputStream bodyStream) throws Exception { com.aliyun.ocr_api20210707.Client client = createClient(); // 需要安装额外的依赖库,直接点击下载完整工程即可看到所有依赖。 RecognizeAllTextRequest recognizeAllTextRequest = new RecognizeAllTextRequest() @@ -45,7 +49,21 @@ try { // 复制代码运行请自行打印 API 的返回值 RecognizeAllTextResponse recognizeAllTextResponse = client.recognizeAllTextWithOptions(recognizeAllTextRequest, runtime); - System.out.println(com.aliyun.teautil.Common.toJSONString(TeaModel.buildMap(recognizeAllTextResponse))); + String jsonString = Common.toJSONString(TeaModel.buildMap(recognizeAllTextResponse)); + JSONObject jsonObject = JSONObject.parseObject(jsonString); + Integer statusCode = jsonObject.getInteger("statusCode"); + if (statusCode != 200) { + throw new RuntimeException("识别失败"); + } + JSONObject body = jsonObject.getJSONObject("body"); + JSONObject data = body.getJSONObject("Data"); + JSONArray subImages = body.getJSONArray("SubImages"); + if (subImages != null && !subImages.isEmpty()){ + JSONObject subImage = subImages.getJSONObject(0); + JSONObject kvInfo = subImage.getJSONObject("KvInfo"); + return kvInfo.getJSONObject("Data"); + } + return null; } catch (TeaException error) { // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 // 错误 message -- Gitblit v1.7.1