有奖捉虫:云通信与企业服务文档专题,速来> HOT

简介

本文档提供关于对象存储图片二维码相关的 API 概览以及 SDK 示例代码。
API
操作描述
二维码识别功能可识别图片中有效二维码的位置及内容,输出图像中二维码包含的文本信息(每个二维码对应的 URL 或文本),并可对识别出的二维码添加马赛克

二维码识别

对象存储二维码识别功能可识别图片中有效二维码的位置及内容,输出图像中二维码包含的文本信息(每个二维码对应的 URL 或文本),并可对识别出的二维码添加马赛克。

示例代码1:上传时识别二维码

// bucket名需包含appid
// api 请参考 https://cloud.tencent.com/document/product/436/54070
String bucketName = "examplebucket-1250000000";

String key = "qrcode.png";
File localFile = new File("E://qrcode.png");
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, localFile);
PicOperations picOperations = new PicOperations();
picOperations.setIsPicInfo(1);
List<PicOperations.Rule> ruleList = new LinkedList<>();
PicOperations.Rule rule = new PicOperations.Rule();
rule.setBucket(bucketName);
rule.setFileId("qrcode-1.png");
rule.setRule("QRcode/cover/1");
ruleList.add(rule);
picOperations.setRules(ruleList);
putObjectRequest.setPicOperations(picOperations);
try {
PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);
CIUploadResult ciUploadResult = putObjectResult.getCiUploadResult();
System.out.println(putObjectResult.getRequestId());
System.out.println(ciUploadResult.getOriginalInfo().getEtag());
for(CIObject ciObject:ciUploadResult.getProcessResults().getObjectList()) {
System.out.println(ciObject.getLocation());
}
} catch (CosServiceException e) {
e.printStackTrace();
} catch (CosClientException e) {
e.printStackTrace();
}

示例代码2:下载识别时识别二维码

GetObjectRequest getObj = new GetObjectRequest(bucketName, key);
// 这里是图片二维码识别参数,具体请参考数据万象API,这里仅是示例
String cover = 0;
getObj.putCustomQueryParameter("ci-process", "QRcode");
getObj.putCustomQueryParameter("cover", cover);
PicOperations 类用于记录图像操作,其主要成员说明如下:
成员名称
描述
类型
isPicInfo
是否返回原图信息,0不返回原图信息,1返回原图信息,默认为0
int
rules
处理规则,一条规则对应一个处理结果(目前支持五条规则),不填则不进行图片处理
List

返回参数说明

CIUploadResult 类用于返回图片处理结果信息,其主要成员说明如下:
成员名称
描述
类型
originalInfo
原图信息
OriginalInfo
processResults
图片处理结果
ProcessResults
OriginalInfo 类用于记录原图信息,其主要成员说明如下:
成员名称
描述
类型
key
原图文件名
String
location
图片路径
String
imageInfo
原图图片信息
ImageInfo
etag
原图 ETag 信息(若处理结果图覆盖原图则为结果图 ETag 信息)
String
ImageInfo 类用于记录原图图片信息,其主要成员说明如下:
成员名称
描述
类型
format
格式
String
width
图片宽度
Integer
height
图片高度
Integer
quality
图片质量
Integer
ave
图片主色调
String
orientation
图片旋转角度
Integer
ProcessResults 类用于记录图片处理结果,其主要成员说明如下:
成员名称
描述
类型
objectList
每一个图片处理结果
List
CIObject 类用于记录一个图片处理结果,其主要成员说明如下:
成员名称
描述
类型
key
文件名
String
location
图片路径
String
format
图片格式
String
width
图片宽度
Integer
height
图片高度
Integer
size
图片大小
Integer
quality
图片质量
Integer
codeStatus
二维码识别结果。0表示未识别到二维码,1表示识别到二维码
Integer
QRcodeInfoList
二维码识别结果,可能有多个
List
QRcodeInfo 用于记录二维码识别结果,其主要成员说明如下:
成员名称
描述
类型
codeUrl
二维码的内容。可能识别不出
String
codeLocation
图中识别到的二维码位置坐标
CodeLocation
CodeLocation 用于记录图中识别到的二维码位置坐标 ,其主要成员说明如下:
成员名称
描述
类型
points
二维码坐标点的集合
List