有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

功能概述

图片上传时识别二维码的请求包与对象存储(Cloud Object Storage,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 Int 是否返回原图信息,0不返回原图信息,1返回原图信息,默认为0
rules Array 处理规则,一条规则对应一个处理结果(目前最多支持五条规则),不填则不进行图片处理

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

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

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

QRcode/cover/<mode>

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

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

    参数名称 类型 描述
    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 int 二维码坐标点

    示例

    请求

    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>test.jpg</Key>
                    <Location>xxxxxx-xxxxxxx.cos.ap-shanghai.myqcloud.com/test.jpg</Location>
            </OriginalInfo>
            <ProcessResults>
                    <Object>
                            <Format>JPEG</Format>
                            <Width>1024</Width>
                            <Height>768</Height>
                            <Size>79866</Size>
                            <Quality>79</Quality>
                            <CodeStatus>1</CodeStatus>
                            <QRcodeInfo>
                                    <CodeUrl>xxxxxxxxxxxxxxxxxxxxxxxx</CodeUrl>
                                    <CodeLocation>
                                            <Point>450,340</Point>
                                            <Point>450,219</Point>
                                            <Point>572,219</Point>
                                            <Point>571,340</Point>
                                    </CodeLocation>
                            </QRcodeInfo>
                            <QRcodeInfo>
                                    <CodeUrl>xxxxxxxxxxxxxxxxxxxxxxxx</CodeUrl>
                                    <CodeLocation>
                                            <Point>773,340</Point>
                                            <Point>772,219</Point>
                                            <Point>894,219</Point>
                                            <Point>894,340</Point>
                                    </CodeLocation>
                            </QRcodeInfo>
                            <QRcodeInfo>
                                    <CodeUrl>xxxxxxxxxxxxxxxxxxxxxxxx</CodeUrl>
                                    <CodeLocation>
                                            <Point>128,340</Point>
                                            <Point>127,219</Point>
                                            <Point>249,219</Point>
                                            <Point>249,340</Point>
                                    </CodeLocation>
                            </QRcodeInfo>
                    </Object>
            </ProcessResults>
    </UploadResult>