控制台指南

最佳实践

开发者指南

数据湖存储

API 文档

SDK 文档

文档捉虫大赛火热进行中,好礼多多> HOT

功能描述

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

推荐使用 API Explorer
点击调试
API Explorer 提供了在线调用、签名验证、SDK 代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成 SDK 调用示例。

请求一:上传时识别

图片上传时识别二维码的请求包与 COS 简单上传文件接口一致,只需在请求包头部增加图片处理参数 Pic-Operations,并将请求 Host 更改为对象存储域名即可。

请求示例

PUT /<ObjectKey> HTTP/1.1 
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
Date: GMT Date 
Authorization: Auth String 
Pic-Operations: <PicOperations> 

说明:

请求头

此接口仅使用公共请求头部,详情请参见 公共请求头部 文档。

请求参数

此接口无请求参数。

请求体

Pic-Operations 为 json 格式的字符串,具体参数如下:

参数名称 描述 类型 是否必选
is_pic_info 是否返回原图信息,0不返回原图信息,1返回原图信息,默认为0 Int
rules 处理规则,一条规则对应一个处理结果(目前最多支持五条规则),不填则不进行图片处理 Array

rules(json 数组)中每一项具体参数如下:

参数名称 描述 类型 是否必选
bucket 存储结果的目标存储桶,格式为 BucketName-APPID,如果不指定的话默认保存到当前存储桶 String
fileid 处理结果的文件路径名称,例如以/开头,则存入指定文件夹中,否则存入与原图文件相同的目录位置 String
rule 处理参数,参见对象存储图片处理 API。若按指定样式处理,则以style/开头,后加样式名,
例如样式名为test,则 rule 字段为style/test
String

使用二维码识别功能需在 rule 中添加二维码识别参数(QRcode),相关内容如下:

QRcode/cover/<mode>

示例参数说明如下:

参数 描述 类型 是否必选
cover 二维码覆盖功能。可为0或1。
  • 0表示不开启二维码覆盖
  • 1表示开启二维码覆盖
    功能开启后,将对识别出的二维码覆盖上马赛克,默认值0
  • Int

    响应

    响应头

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

    响应体

    响应体具体数据内容如下:

    参数名称 类型 描述
    UploadResult Container 原图信息

    UploadResult 节点内容:

    参数名称 类型 描述
    OriginalInfo Container 原图信息
    ProcessResults Container 图片处理结果

    OriginalInfo 节点内容:

    节点名称 类型 描述
    Key String 原图文件名
    Location String 图片路径
    ImageInfo Container 原图图片信息

    ImageInfo 节点内容:

    节点名称 类型 描述
    Format String 格式
    Width Int 图片宽度
    Height Int 图片高度
    Quality Int 图片质量
    Ave String 图片主色调
    Orientation Int 图片旋转角度

    ProcessResults 节点内容:

    节点名称 类型 描述
    Object Container 每一个图片处理结果

    Object 节点内容:

    节点名称 类型 描述
    Key String 文件名
    Location String 图片路径
    Format String 图片格式
    Width Int 图片宽度
    Height Int 图片高度
    Size Int 图片大小
    Quality Int 图片质量
    codeStatus Int 二维码识别结果。0表示未识别到二维码,1表示识别到二维码
    QRcodeInfo Container 二维码识别结果,可能有多个

    QRcodeInfo 节点内容:

    节点名称 类型 描述
    codeUrl String 二维码的内容。可能识别不出
    codelocation Container 图中识别到的二维码位置坐标

    codelocation 节点内容:

    节点名称 类型 描述
    point String 二维码坐标点

    实际案例

    请求

    PUT /picture.jpg HTTP/1.1 
    Host: examplebucket-1250000000.cos.ap-chengdu.myqcloud.com
    Date: Tue, 03 Apr 2018 09:06:15 GMT 
    Authorization:XXXXXXXXXXXX 
    
    
    
    Pic-Operations: {"is_pic_info":1,"rules":[{"fileid":"test.jpg","rule":" QRcode/cover/1"}]} 
    Content-Length: 64 
    
    
    
    [Object] 

    响应

    HTTP/1.1 200 OK 
    Content-Type: application/xml 
    Content-Length: 645 
    Date: Tue, 03 Apr 2018 09:06:16 GMT 
    Status: 200 OK
    x-cos-request-id: NWFjMzQ0MDZfOTBmYTUwXzZkZV8z****
    
    
    
    <UploadResult>
          <OriginalInfo>
            <Key>picture.jpg</Key>
            <Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/picture.jpg</Location>
            <ImageInfo>
                   <Format>JPEG</Format>
                   <Width>640</Width>
                   <Height>427</Height>
                   <Quality>100</Quality>
                   <Ave>0xa18454</Ave>
                   <Orientation>1</Orientation>
            </ImageInfo>
          </OriginalInfo>
          <ProcessResults>
            <Object>
               <Key>picture-2.jpg</Key>
               <Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/picture-2.jpg</Location>
               <Format>png</Format>
               <Width>640</Width>
               <Height>427</Height>
               <Size>463092</Size>
               <Quality>100</Quality>
               <codeStatus>1</codeStatus>
               <QRcodeInfo>
                  <codeUrl>xxxxxxxxxxxxx</codeUrl>
                  <codelocation>
                      <point>100,100</point>
                      <point>100,200</point>
                      <point>200,200</point>
                      <point>200,100</point>
                  </codelocation>
                  </QRcodeInfo>
                      <codeUrl>xxxxxxxxxxxxx</codeUrl>
                      <codelocation>
                          <point>1000,1000</point>
                          <point>1000,2000</point>
                          <point>2000,2000</point>
                          <point>2000,1000</point>
                      </codelocation>
            </Object>
        </ProcessResults>
    </UploadResult>

    请求二:下载时识别

    请求示例

    GET /<ObjectKey>?ci-process=QRcode&cover=<cover> HTTP/1.1
    Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
    Date: <GMT Date>
    Authorization: <Auth String>

    说明:

    Authorization: Auth String (详情请参见 请求签名 文档)。

    请求头

    此接口仅使用公共请求头部,详情请参见 公共请求头部 文档。

    请求参数

    参数名称 描述 是否必选 类型
    ObjectKey 对象文件名,例如 folder/sample.jpg String
    ci-process 万象处理能力,二维码识别固定为 QRcode String
    cover 二维码覆盖功能,将对识别出的二维码覆盖上马赛克。取值为0或1。0表示不开启二维码覆盖,1表示开启二维码覆盖,默认值0 Int

    请求体

    该请求无请求体。

    响应

    响应头

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

    响应体

    该响应体返回为 application/xml 数据,包含完整节点数据的内容展示如下:

    <Response>
           <CodeStatus>1</CodeStatus>
           <QRcodeInfo>
                 <CodeUrl>xxxx</CodeUrl>
                 <CodeLocation>
                       <Point>xxx,xxx</Point>
                       <Point>xxx,xxx</Point>
                       <Point>xxx,xxx</Point>
                       <Point>xxx,xxx</Point>
                 </CodeLocation>
           </QRcodeInfo>
           <ResultImage>
                base64编码的图片
           </ResultImage>
    </Response>

    具体的数据内容如下:

    节点名称(关键字) 父节点 描述 类型
    Response 保存结果的容器 Container

    Response 的内容:

    节点名称(关键字) 父节点 描述 类型
    CodeStatus Response 二维码识别结果。0表示未识别到二维码,1表示识别到二维码 Int
    QRcodeInfo Response 二维码识别结果,可能有多个 Container
    ResultImage Response 处理后的图片 base64数据,请求参数 cover 为1时返回 String

    QRcodeInfo 节点内容:

    节点名称(关键字) 父节点 描述 类型
    CodeUrl QRcodeInfo 二维码的内容。可能识别不到内容 String
    CodeLocation QRcodeInfo 图中识别到的二维码位置坐标 Container

    CodeLocation 节点内容:

    节点名称(关键字) 父节点 描述 类型
    Point CodeLocation 二维码坐标点(X坐标,Y坐标) String

    错误码

    该请求操作无特殊错误信息,常见的错误信息请参见 错误码 文档。

    实际案例

    请求

    GET /<ObjectKey>?ci-process=QRcode&cover=1 HTTP/1.1
    Authorization: q-sign-algorithm=sha1&q-ak=AKIDZfbOAo7cllgPvF9cXFrJD0**********&q-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=28e9a4986df11bed0255e97ff90500557e0ea057
    Host: examplebucket-1250000000.cos.ap-beijing.myqcloud.com

    响应

    HTTP/1.1 200 OK
    Content-Type: application/xml
    Content-Length: 414641
    Date: Thu, 15 Jun 2017 12:37:29 GMT
    Server: tencent-image
    x-cos-request-id: NTk0MjdmODlfMjQ4OGY3XzYzYzhf****
    
    
    
    <Response>
            <CodeStatus>1</CodeStatus>
               <QRcodeInfo>
                   <CodeUrl>xxxxxxxxxxxxx</CodeUrl>
                   <CodeLocation>
                          <Point>100,100</Point>
                       <Point>100,200</Point>
                       <Point>200,200</Point>
                       <Point>200,100</Point>
                   </CodeLocation>
            </QRcodeInfo>
               <QRcodeInfo>
                    <CodeUrl>xxxxxxxxxxxxx</CodeUrl>
                    <CodeLocation>
                       <Point>1000,1000</Point>
                       <Point>1000,2000</Point>
                       <Point>2000,2000</Point>
                       <Point>2000,1000</Point>
                    </CodeLocation>
            </QRcodeInfo>
            <ResultImage>
               base64编码的图片
            </ResultImage>
    </Response>

    目录