控制台指南

最佳实践

开发者指南

API 文档

SDK 文档

图片二维码

最近更新时间:2021-05-14 17:18:51

简介

本文档提供关于对象存储图片二维码相关的 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
目录