功能概述
腾讯云数据万象通过 ImageRepair 接⼝能检测并擦除图片中常见的标志,并对擦除部分进行智能修复。
注意:
授权说明
下载时处理:授权策略中 action 设置为
cos:GetObject
、ci:CreateImageRepairJob
。上传时处理:授权策略中 action 设置为
cos:PutObject
、ci:CreateImageRepairJob
。云上数据处理:授权策略中 action 设置为
cos:GetObject
、cos:PutObject
、ci:CreateImageRepairJob
(注意 GetObject 对应的 resource 为源文件,PutObject 对应的 resource 为转存的文件)。服务开通
使用该功能需提前开通数据万象,并绑定存储桶。详情请参见 绑定存储桶。
使用该功能需提前通过控制台或接口开通 AI 内容识别服务 。详情请参见 开通 AI 内容识别服务。
使用限制
费用说明
处理方式一:下载时处理
请求
请求语法
原图存储在 COS:
GET /<ObjectKey>?ci-process=ImageRepair HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: <GMT Date>Authorization: <Auth String>
原图来自其他链接:
GET /<ObjectKey>?ci-process=ImageRepair&detect-url=<detect-url> HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: <GMT Date>Authorization: <Auth String>
处理方式二:上传时处理
请求
请求语法
PUT /<ObjectKey> HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateAuthorization: Auth StringPic-Operations: <PicOperations>
说明:
请求头
头部名称 | 描述 | 类型 |
Pic-Operations | 对图片进行操作的参数 | String |
Pic-Operations 为 json 格式的字符串,具体参数如下:
参数名称 | 类型 | 是否必选 | 描述 |
is_pic_info | Int | 否 | 是否返回原图信息,0不返回原图信息,1返回原图信息,默认为0 |
rules | Array | 否 | 处理规则,一条规则对应一个处理结果(目前支持五条规则),不填则不进行图片处理 |
rules(json 数组)中每一项具体参数如下:
参数名称 | 类型 | 是否必选 | 描述 |
bucket | String | 否 | 存储结果的目标存储桶名称,格式为 BucketName-AppId,如果不指定的话默认保存到当前存储桶 |
fileid | String | 是 | 处理后文件的保存路径及名称。名称规则说明: 例如源文件的路径及文件名为:/p1/test1.jpg 1. 以/开头为绝对路径,例如 fileid 值为 /p2/test2.jpg 时,表示在 p2 文件夹中存储了一个文件名为 test2.jpg 的文件 2. 不以/开头为相对路径,例如 fileid 值为 p2/test2.jpg 时,表示在 p1 文件夹中新建了一个 p2 文件夹,然后在 p2 文件夹中存储了一个文件名为 test2.jpg 的文件 3. 注意:请不要以/结尾,否则会产生空文件名 4. 如希望修复后的图片覆盖原图,请将 fileid 字段设置为<ObjectKey> |
rule | String | 是 | 处理参数,ci-process=ImageRepair&MaskPic=<MaskPic>&MaskPoly=<MaskPoly>,具体参数描述见下表 |
图像修复相关参数如下:
参数名称 | 描述 | 类型 | 是否必选 |
ci-process | 数据万象处理能⼒,图像标志擦除固定为 ImageRepair | String | 是 |
MaskPic | 遮罩(白色区域为需要去除的水印位置)图片地址,私有图片需携带签名,需要经过 URL 安全的 Base64 编码。例如,遮罩图片为 http://examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/shuiyin_2.png ,则该处编码后的字符串为 aHR0cDovL2V4YW1wbGVidWNrZXQtMTI1MDAwMDAwMC5jb3MuYXAtZ3Vhbmd6aG91Lm15cWNsb3VkLmNvbS9zaHVpeWluXzIucG5n | String | 否 |
MaskPoly | 例如: [[[608, 794], [1024, 794], [1024, 842], [608, 842]],[[1295, 62], [1295, 30], [1597, 32],[1597,64]]] ,顺时针输⼊多边形的每个点的坐标,每个多边形: [[x1, y1], [x2, y2]...] , 形式为三维矩阵(多个多边形: [多边形1,多边形2] )或⼆维矩阵(单个多边形),且需要经过 URL 安全的 Base64 编码。MaskPoly 同时与 MaskPic 填写时,优先采⽤ MaskPic 的值。 | String | 否 |
请求体
该请求 body 内容为待修复图片原图
[Image Content]
响应
响应头
响应体
该响应体返回 content-type 为 application/xml 数据,具体的数据内容如下:
节点名称(关键字) | 父节点 | 描述 | 类型 |
UploadResult | 无 | 请求结果 | Container |
UploadResult 的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
OriginalInfo | UploadResult | 原图信息 | Container |
ProcessResults | UploadResult | 请求处理结果 | Container |
OriginalInfo 节点内容:
节点名称 | 父节点 | 描述 | 类型 |
Key | OriginalInfo | 原图文件名 | String |
Location | OriginalInfo | 图片路径 | String |
ProcessResults 节点内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
Object | ProcessResults | 每个图片的处理结果 | Container |
Object 节点内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
Key | Object | 修复后图片文件名 | String |
Location | Object | 修复后的图片链接 | String |
ETag | Object | 修复后图片的 ETag 值 | String |
Size | Object | 图片大小 | Int |
示例
请求
PUT /filename.jpg HTTP/1.1Host: examplebucket-1250000000.cos.ap-chengdu.myqcloud.comDate: Wed, 28 Oct 2015 20:32:00 GMTAuthorization:XXXXXXXXXXXXPic-Operations: {"rules":[{"fileid":"test.jpg","rule":"ci-process=ImageRepair&MaskPic=aHR0cDovL3BldGVyLWd6LTEyNTE3MDQ3MDguY29zLmFwLWd1YW5nemhvdS5teXFjbG91ZC5jb20vcGljX21hc2suanBn"}]}Content-Length: 64[Image Content]
响应
HTTP/1.1 200 OKContent-Type: application/xmlContent-Length: 645Date: Tue, 03 Apr 2018 09:06:16 GMTStatus: 200 OKx-cos-request-id: NWFjMzQ0MDZfOTBmYTUwXzZkZV8z****<UploadResult><OriginalInfo><Key>456.jpeg</Key><Location>examplebucket-1250000000.cos.ap-chongqing.myqcloud.com/456.jpeg</Location></OriginalInfo><ProcessResults><Object><Key>test.jpg</Key><Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/test.jpg</Location><ETag>"eaa4e3d8fd498bbc63be3b71c46b9c61f23e3f0c"</ETag></Object></ProcessResults></UploadResult>
处理方式三:云上数据处理
请求
请求语法
POST /<ObjectKey>& HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateAuthorization: Auth StringPic-Operations: <PicOperations>
说明:
请求内容
参数名称 | 描述 | 类型 |
ObjectKey | 待修复图片名称,需为存储在COS上的文件名,例如 folder/sample.jpg | String |
请求头
头部名称 | 描述 | 类型 |
Pic-Operations | 对图片进行操作的参数 | String |
Pic-Operations 为 json 格式的字符串,具体参数如下:
参数名称 | 类型 | 是否必选 | 描述 |
is_pic_info | Int | 否 | 是否返回原图信息,0不返回原图信息,1返回原图信息,默认为0 |
rules | Array | 否 | 处理规则,一条规则对应一个处理结果(目前支持五条规则),不填则不进行图片处理 |
rules(json 数组)中每一项具体参数如下:
参数名称 | 类型 | 是否必选 | 描述 |
bucket | String | 否 | 存储结果的目标存储桶名称,格式为 BucketName-APPID,如果不指定的话默认保存到当前存储桶 |
fileid | String | 是 | 处理后文件的保存路径及名称。名称规则说明: 例如源文件的路径及文件名为:/p1/test1.jpg 1. 以/开头为绝对路径,例如 fileid 值为 /p2/test2.jpg 时,表示在 p2 文件夹中存储了一个文件名为 test2.jpg 的文件 2. 不以/开头为相对路径,例如 fileid 值为 p2/test2.jpg 时,表示在 p1 文件夹中新建了一个 p2 文件夹,然后在 p2 文件夹中存储了一个文件名为 test2.jpg 的文件 3. 注意:请不要以/结尾,否则会产生空文件名 4. 如希望修复后的图片覆盖原图,请将 fileid 字段设置为<ObjectKey> |
rule | String | 是 | 处理参数,ci-process=ImageRepair&MaskPic=<MaskPic>&MaskPoly=<MaskPoly>,具体参数描述见下表 |
图像修复相关参数如下:
参数名称 | 描述 | 类型 | 是否必选 |
ci-process | 数据万象处理能⼒,图像标志擦除固定为 ImageRepair | String | 是 |
MaskPic | 遮罩(白色区域为需要去除的水印位置)图片地址,私有图片需携带签名,需要经过 URL 安全的 Base64 编码。例如,遮罩图片为 http://examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/shuiyin_2.png ,则该处编码后的字符串为 aHR0cDovL2V4YW1wbGVidWNrZXQtMTI1MDAwMDAwMC5jb3MuYXAtZ3Vhbmd6aG91Lm15cWNsb3VkLmNvbS9zaHVpeWluXzIucG5n | String | 否 |
MaskPoly | 例如: [[[608, 794], [1024, 794], [1024, 842], [608, 842]],[[1295, 62], [1295, 30], [1597, 32],[1597,64]]] ,顺时针输⼊多边形的每个点的坐标,每个多边形: [[x1, y1], [x2, y2]...] , 形式为三维矩阵(多个多边形: [多边形1,多边形2] )或⼆维矩阵(单个多边形),且需要经过 URL 安全的 Base64 编码。MaskPoly 同时与MaskPic 填写时,优先采⽤ MaskPic 的值 | String | 否 |
请求体
该请求没有请求体
响应
响应头
响应体
该响应体返回 content-type 为 application/xml 数据,具体的数据内容如下:
节点名称(关键字) | 父节点 | 描述 | 类型 |
UploadResult | 无 | 请求结果 | Container |
UploadResult 的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
OriginalInfo | UploadResult | 原图信息 | Container |
ProcessResults | UploadResult | 请求处理结果 | Container |
OriginalInfo 节点内容:
节点名称 | 类型 | 描述 |
Key | String | 原图文件名 |
Location | String | 图片路径 |
ProcessResults 节点内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
Object | ProcessResults | 每个图片的处理结果 | Container |
Object 节点内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
Key | Object | 修复后图片文件名 | String |
Location | Object | 修复后的图片链接 | String |
ETag | Object | 修复后图片的 ETag 值 | String |
Size | Object | 图片大小 | Int |
示例
请求
POST /filename.jpg HTTP/1.1Host: examplebucket-1250000000.cos.ap-chengdu.myqcloud.comDate: Wed, 28 Oct 2015 20:32:00 GMTAuthorization:XXXXXXXXXXXXPic-Operations: {"rules":[{"fileid":"bigpic_process.jpg","rule":"ci-process=ImageRepair&MaskPic=aHR0cDovL3BldGVyLWd6LTEyNTE3MDQ3MDguY29zLmFwLWd1YW5nemhvdS5teXFjbG91ZC5jb20vcGljX21hc2suanBn"}]}Content-Length: 0
响应
HTTP/1.1 200 OKContent-Type: application/xmlContent-Length: 645Date: Tue, 03 Apr 2018 09:06:16 GMTStatus: 200 OKx-cos-request-id: NWFjMzQ0MDZfOTBmYTUwXzZkZV8z****<UploadResult><OriginalInfo><Key>456.jpeg</Key><Location>examplebucket-1250000000.cos.ap-chongqing.myqcloud.com/456.jpeg</Location></OriginalInfo><ProcessResults><Object><Key>bigpic_process.jpeg</Key><Location>examplebucket-1250000000.cos.ap-chongqing.myqcloud.com/bigpic_process.jpeg</Location><Format/><Size>288132</Size><ETag>"fa2a3d6081c1037f154401a64eec4b19"</ETag></Object></ProcessResults></UploadResult>