简介
本文档提供关于对象存储图片二维码相关的 API 概览以及 SDK 示例代码。
API | 操作描述 |
二维码识别功能可识别图片中有效二维码的位置及内容,输出图像中二维码包含的文本信息(每个二维码对应的 URL 或文本),并可对识别出的二维码添加马赛克 |
二维码识别
对象存储二维码识别功能可识别图片中有效二维码的位置及内容,输出图像中二维码包含的文本信息(每个二维码对应的 URL 或文本),并可对识别出的二维码添加马赛克。
示例代码1:上传时识别二维码
// bucket名需包含appid// api 请参考 https://cloud.tencent.com/document/product/436/54070String 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 |