图片二维码

最近更新时间:2024-08-28 10:13:01

我的收藏

简介

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

二维码识别

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

上传时识别二维码

功能说明

图片上传时识别二维码的请求包与 COS 简单上传文件接口一致,只需在请求包头部增加图片处理参数 Pic-Operations。

示例代码

# 先创建 cos client
example_object = 'example_object.jpg'
with open(example_object, 'rb') as fp:
opts = '{"is_pic_info":1,"rules":[{"fileid":"format.jpg","rule":"QRcode/cover/0"}]}'
response,data = client.ci_put_object_from_local_file_and_get_qrcode(
Bucket='example-bucket-123456789',
LocalFilePath=example_object,
Key='example_key',
EnableMD5=False,
PicOperations=opts
)
# 查看响应信息,可根据需要读指定数据
print(response,data)

参数说明

参数名称
参数描述
类型
是否必填
Bucket
存储桶名称,由 BucketName-APPID 构成
String
LocalFilePath
图片路径
String
Key
对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg
String
EnableMD5
是否需要 SDK 计算 Content-MD5,默认关闭,打开后将增加上传耗时
Bool
PicOperations
万象图片处理参数,请参见 二维码识别
String

返回结果说明

response 为响应头,data 为二维码识别结果,数据类型都为 dict。
# response
{
'Content-Type': 'application/xml',
'Content-Length': '1094',
'Connection': 'keep-alive',
'Date': 'Sat, 00 May 0000 00:00:00 GMT',
'Etag': '"string"',
'Server': 'tencent-ci',
'X-Cos-Hash-Crc64ecma': '00000000000000000',
'X-Cos-Storage-Class': 'STANDARD',
'x-cos-request-id': 'request id'
}
# data
{
'OriginalInfo': {
'Key': 'example_key',
'Location': 'test-1250000000.cos.ap-chongqing.myqcloud.com/example_key',
'ETag': '"1cb58f788804beac37769b9eb407c954"',
'ImageInfo': {
'Format': 'PNG',
'Width': '400',
'Height': '400',
'Quality': '100',
'Ave': '0xe0e0e0',
'Orientation': '0',
'FrameCount': '1'
}
},
'ProcessResults': {
'Object': {
'Key': '1.jpg',
'Location': 'test-1250000000.cos.ap-chongqing.myqcloud.com/1.jpg',
'Format': 'png',
'Width': '400',
'Height': '400',
'Size': '594',
'Quality': '80',
'FrameCount': '1',
'ETag': '"e7e22acd8f0cec7abe858748d641d266"',
'CodeStatus': '1',
'QRcodeInfo': {
'CodeUrl': 'cloud.tencent.com',
'CodeLocation': {
'Point': ['27,371', '27,27', '371,27', '371,371']
}
}
}
}
}

response 内容

返回公共响应头部,详情请参见 公共响应头部 文档。

响应体 data

响应体具体数据内容如下:
参数名称
参数描述
类型
OriginalInfo
原图信息
Container
ProcessResults
图片处理结果
Container
OriginalInfo 节点内容:
节点名称
参数描述
类型
Key
原图文件名
String
Location
图片路径
String
Etag
图片etag信息
String
ImageInfo
原图图片信息
Container
ImageInfo 节点内容:
节点名称
参数描述
类型
Format
格式
String
Width
图片宽度
String
Height
图片高度
String
Quality
图片质量
String
Ave
图片主色调
String
Orientation
图片旋转角度
String
FrameCount
图片的帧数。静态图为1,动图为对应的帧数。
String
ProcessResults 节点内容:
节点名称
参数描述
类型
Object
每一个图片处理结果
Container
Object 节点内容:
节点名称
参数描述
类型
Key
文件名
String
Location
图片路径
String
Format
图片格式
String
Width
图片宽度
String
Height
图片高度
String
Size
图片大小
String
Quality
图片质量
String
Etag
图片etag信息
String
FrameCount
图片的帧数。静态图为1,动图为对应的帧数。
String
CodeStatus
二维码识别结果。0表示未识别到二维码,1表示识别到二维码
String
QRcodeInfo
二维码识别结果,可能有多个
Container
QRcodeInfo 节点内容:
节点名称
参数描述
类型
CodeUrl
二维码的内容。可能识别不出
String
CodeLocation
图中识别到的二维码位置坐标
Container
codelocation 节点内容:
节点名称
参数描述
类型
Point
二维码坐标点
String



云上数据识别二维码

功能说明

对云上图片进行二维码识别,返回二维码识别结果。

示例代码

# 先创建 cos client
response,data = client.ci_get_object_qrcode(
Bucket='example_bucket-123456789',
Key='example_object',
Cover=0,
BarType=0,
)
# 查看响应信息,可根据需要读指定数据
print(response,data)

参数说明

参数名称
参数描述
类型
是否必填
Bucket
存储桶名称,由 BucketName-APPID 构成
String
Key
对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg
String
Cover
二维码覆盖功能。可为0或1。
0表示不开启二维码覆盖
1表示开启二维码覆盖
功能开启后,将对识别出的二维码覆盖上马赛克,默认值0
Int
BarType
二维码/条形码识别功能,将对识别出的二维码/条形码 覆盖马赛克。取值有0,1,2 。
0表示都识别
1表示识别二维码
2表示识别条形码
默认值0
Int

返回结果说明

response 为响应头,data 为二维码识别结果,数据类型都为 dict。
# response
{
'Content-Type': 'application/xml',
'Content-Length': '1094',
'Connection': 'keep-alive',
'Date': 'Sat, 00 May 0000 00:00:00 GMT',
'Etag': '"string"',
'Server': 'tencent-ci',
'X-Cos-Hash-Crc64ecma': '00000000000000000',
'X-Cos-Storage-Class': 'STANDARD',
'x-cos-request-id': 'request id'
}
# data
{
'CodeStatus': '1',
'QRcodeInfo': {
'CodeUrl': 'www.tencent.com',
'CodeLocation': {
'Point': ['23,375', '23,23', '375,23', '375,375']
}
}
}

response 内容

返回公共响应头部,详情请参见 公共响应头部 文档。

响应体 data

响应体具体数据内容如下:
节点名称(关键字)
参数描述
类型
CodeStatus
二维码识别结果。0表示未识别到二维码,1表示识别到二维码
String
QRcodeInfo
二维码识别结果,可能有多个
Container
ResultImage
处理后的图片 base64数据,请求参数 cover 为1时返回
String
QRcodeInfo 节点内容:
节点名称(关键字)
参数描述
类型
CodeUrl
二维码的内容。可能识别不到内容
String
CodeLocation
图中识别到的二维码位置坐标
Container
CodeLocation 节点内容:
节点名称(关键字)
参数描述
类型
Point
二维码坐标点(X坐标,Y坐标)
String