赞
踩
在线调试,界面上也有代码,直接copy即可,网址如下
登录 - 腾讯云
secretId和secretKey管理界面如下,url地址如下
登录 - 腾讯云
代码实现如下
1 pom.xml
- <dependency>
- <groupId>com.tencentcloudapi</groupId>
- <artifactId>tencentcloud-sdk-java-common</artifactId>
- <version>LATEST</version>
- </dependency>
- <dependency>
- <groupId>com.tencentcloudapi</groupId>
- <artifactId>tencentcloud-sdk-java-ocr</artifactId>
- <version>LATEST</version>
- </dependency>
2 yml配置如下
- tencent:
- cloud:
- secretId: AKIDfBwSxKSKyOl24sRkARUUMzTkmYPxxxxx
- secretKey: 3tVs0tY0FG3bs0tWt1uZzKTOxxxxxxxx
- region: ap-beijing
3 属性注入
- import lombok.Data;
- import org.springframework.boot.context.properties.ConfigurationProperties;
- import org.springframework.stereotype.Component;
-
- @Data
- @Component
- @ConfigurationProperties(prefix = "tencent.cloud")
- public class TencentCloudProperties {
-
- private String secretId;
- private String secretKey;
- private String region;
-
- }
4 调用测试
- import com.tencentcloudapi.common.Credential;
- import com.tencentcloudapi.common.profile.ClientProfile;
- import com.tencentcloudapi.common.profile.HttpProfile;
- import com.tencentcloudapi.ocr.v20181119.OcrClient;
- import com.tencentcloudapi.ocr.v20181119.models.IDCardOCRRequest;
- import com.tencentcloudapi.ocr.v20181119.models.IDCardOCRResponse;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestPart;
- import org.springframework.web.bind.annotation.RestController;
- import org.springframework.web.multipart.MultipartFile;
- import javax.imageio.ImageIO;
- import java.awt.image.BufferedImage;
- import java.io.ByteArrayOutputStream;
- import java.util.Base64;
-
- @RestController
- public class Controller_3 {
-
- @Autowired
- private TencentCloudProperties tencentCloudProperties;
-
- @RequestMapping("/idCardOcr")
- public Object idCardOcr(@RequestPart("file") MultipartFile file) {
- try {
- // 检查文件是否为空
- if (file.isEmpty()) {
- return "文件不能为空";
- }
-
- // 图片转换base64格式字符串
- BufferedImage image = ImageIO.read(file.getInputStream());
- // 将图像转换为字节
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- ImageIO.write(image, "png", baos);
- byte[] imageBytes = baos.toByteArray();
-
- // 使用Base64进行编码
- String fileBase64 = "data:image/png;base64," + Base64.getEncoder().encodeToString(imageBytes);
-
- // 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
- Credential cred = new Credential(tencentCloudProperties.getSecretId(),
- tencentCloudProperties.getSecretKey());
- // 实例化一个http选项,可选的,没有特殊需求可以跳过
- HttpProfile httpProfile = new HttpProfile();
- httpProfile.setEndpoint("ocr.tencentcloudapi.com");
- // 实例化一个client选项,可选的,没有特殊需求可以跳过
- ClientProfile clientProfile = new ClientProfile();
- clientProfile.setHttpProfile(httpProfile);
- // 实例化要请求产品的client对象,clientProfile是可选的
- OcrClient client = new OcrClient(cred, tencentCloudProperties.getRegion(), clientProfile);
- // 实例化一个请求对象,每个接口都会对应一个request对象
- IDCardOCRRequest req = new IDCardOCRRequest();
- // 设置文件
- req.setImageBase64(fileBase64);
-
- // 返回的resp是一个IDCardOCRResponse的实例,与请求对象对应
- IDCardOCRResponse resp = client.IDCardOCR(req);
- System.out.println("resp = " + resp);
- return resp;
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException(e.getMessage());
- }
-
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。