tencent cloud

数据万象

动态与公告
产品动态
产品公告
产品简介
产品概述
产品优势
应用场景
功能概览
地域与域名
使用限制
产品计费
计费概述
计费方式
计费项
免费额度
欠费说明
查看消费明细
常见问题
快速入门
注册与登录
绑定存储桶
上传和处理文件
下载和删除文件
解绑存储桶
通过 COS 使用数据万象
能力地图
图片处理
媒体处理
内容审核
AI 内容识别
文档处理
智能语音
文件处理
用户指南
概览
存储桶管理
智能工具箱
任务与工作流
数据监控
用量统计
实践教程
版权保护解决方案
图片处理实践
API 授权策略使用指引
工作流实践
API 文档
API 概览
结构体
公共请求头部
公共响应头部
开通万象服务
图片处理
AI 内容识别
智能语音
媒体处理
内容审核
文档处理
文件处理
任务与工作流
云查毒
错误码
请求签名
SDK 文档
SDK 概览
图片处理 Android SDK
图片处理 iOS SDK
COS Android SDK
C SDK
C++ SDK
.NET(C#) SDK
Go SDK
COS iOS SDK
Java SDK
JavaScript SDK
Node.js SDK
PHP SDK
Python SDK
小程序 SDK
SDK 产品个人信息保护规则
安全与合规
权限管理
常见问题
基础设置
文档处理
媒体处理
内容识别
智能语音
服务协议
Service Level Agreement
联系我们
词汇表

盲水印

PDF
聚焦模式
字号
最后更新时间: 2024-01-18 15:11:52

简介

盲水印功能是指将水印以不可见的形式添加到图片中,这样的水印不会图片观感产生影响,同时也保证了图片的原创性。当发现图片被盗取后,您可以通过 提取盲水印,将不可见的水印提取出来,验证图片的归属。 通过该 API 接口,您可以:
在上传时为图片添加盲水印、提取盲水印
对 COS 上的图片添加盲水印、提取盲水印
在下载时为图片添加盲水印(不支持下载时提取盲水印)
数据万象提供的盲水印功能拥有半盲水印、全盲水印和文字盲水印三种类型:
水印类型
特性
适用场景
半盲水印(type1)
抗攻击性强,但提取水印需原图
小图(640px x 640px以下)使用
全盲水印(type2)
提取方便,提取水印仅需水印图,无需对比原图
批量添加,批量校验
文字盲水印(type3)
可直接将文字信息添加至图片中
终端信息添加
盲水印是付费服务,使用时需在相应存储桶配置页中通过开关开通服务。具体费用请参见 图片处理费用
说明:
暂不支持为动图(例如 GIF 图片)添加盲水印。
使用盲水印功能,水印图的宽高不得超过原图的1/8。
为保证盲水印效果,水印图请选用黑底白色图片。
文字盲水印当前支持数字[0 - 9]及英文大小写[A - Z,a - z]。
盲水印可抵抗裁剪、涂抹、变色等多种图片盗取攻击,防盗效果与原图大小及攻击程度相关。如需详细咨询请 提交工单
盲水印已支持数据万象所有地域,详情请查看 地域与域名

适用场景

鉴权追责

您可对图片资源增加半盲水印,在发现恶意攻击方盗取您的资源后将疑似被盗取图取回,并与相应原图进行盲水印提取操作,若能够得到有效水印图即可证明资源归属。

上传查重

为解决部分用户使用其他用户资源重复上传相同信息的问题(如房产图、汽车图、商品图等),您可在用户上传图片资源前先进行全盲水印提取,若提取到水印图信息则证明该图片来自之前已有资源,并进行相应操作(如提醒用户请勿重复上传资源);若不存在全盲水印则添加全盲水印,保护图片资源不被其他用户下载后重复上传。

资源防泄露

对于内部分享的图片资源,您可通过文字盲水印将访问方的信息在请求图片时添加至图片中,当资源泄露后可通过流传出的资源图提取出盲水印,进而得到泄露方信息。

添加盲水印

请求一:上传时添加盲水印

图片上传时添加盲水印的请求包与 PUT Object 接口一致,只需在请求包头部增加图片处理参数 Pic-Operations 并使用盲水印参数即可。

请求示例

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

[Object Content]
说明:
Authorization: Auth String(详情请参见 请求签名 文档)。
通过子账号使用时,需要授予相关的权限,详情请参见 授权粒度详情 文档。

请求头

此接口使用公共请求头部,详情请参见 公共请求头部 文档。
请求包头部增加图片处理参数 Pic-Operations,Pic-Operations 为 json 格式的字符串,具体参数如下:
参数名称
描述
类型
是否必选
is_pic_info
是否返回原图信息。0表示不返回原图信息,1表示返回原图信息,默认为0
Int
rules
处理规则,一条规则对应一个处理结果(目前最多支持五条规则),不填则不进行图片处理
Array
rules(json 数组)中每一项具体参数如下:
参数名称
描述
类型
是否必选
bucket
存储结果的目标存储桶名称,格式为:BucketName-APPID,如果不指定的话默认保存到当前存储桶
String
fileid
处理后文件的保存路径及名称。名称规则说明:
例如源文件的路径及文件名为:/p1/test1.jpg
1. 以/开头为绝对路径,例如 fileid 值为 /p2/test2.jpg 时,表示在 p2 文件夹中存储了一个文件名为 test2.jpg 的文件。
2. 不以 / 开头为相对路径,例如 fileid 值为 p2/test2.jpg 时,表示在 p1 文件夹中新建了一个 p2 文件夹,然后在 p2 文件夹中存储了一个文件名为 test2.jpg 的文件。
3. 注意:请不要以 / 结尾,否则会产生空文件名。
String
rule
处理参数,可参见图片处理 API。 若按指定样式处理,则以 style/ 开头,后加样式名,如样式名为“test”,则 rule 字段为 style/test
String
使用盲水印需在 rule 中添加水印图参数(watermark),示例格式如下:
watermark/3/type/<type>/image/<imageUrl>/text/<text>/level/<level>
示例参数说明如下:
参数名称
描述
类型
是否必选
type
盲水印类型,有效值:1为半盲水印;2为全盲水印;3为文字盲水印
Int
image
盲水印图片地址,需要经过 URL 安全的 Base64 编码。 当 type 为1或2时必填,type 为3时无效。 指定的水印图片必须同时满足如下条件:
1. 盲水印图片与原图片必须位于同一个存储桶下;
2. URL 必须以 http:// 开始,不能省略 http 头,也不能填 https 头,例如以下地址为非法水印地址:
examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/watermark.png
https://examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/watermark.png
String
text
盲水印文字,需要经过 URL 安全的 Base64 编码。当 type 为3时必填,type 为1或2时无效。
String
level
只对全盲水印(type=2)有效。level 的取值范围为{1,2,3},默认值为1,level 值越大则图片受影响程度越大、盲水印效果越好。
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

实际案例

请求

PUT /exampleobject 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": "exampleobject",
"rule": "watermark/3/type/1/image/aHR0cDovL2V4YW1wbGVzLTEyNTEwMDAwMDQucGljc2gubXlxY2xvdWQuY29tL3NodWl5aW4uanBn"
}]
}
Content-Length: 64

[Object Content]

响应

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>exampleobject</Key>
<Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/exampleobject</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>exampleobject</Key>
<Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/exampleobject</Location>
<Format>png</Format>
<Width>640</Width>
<Height>427</Height>
<Size>463092</Size>
<Quality>100</Quality>
</Object>
</ProcessResults>
</UploadResult>
注意:
请求体的 [Object Content] 字段为原图的图片内容(二进制字符串),请求头 Pic-Operations 的 rule 字段中,imageUrl 为水印图片的地址。
响应体的 ProcessResults 中的 Location 字段为处理后已经携带盲水印的图片的地址。

请求二:下载时添加盲水印

图片下载时添加盲水印与添加普通水印操作相同,只需在图片访问链接后使用 watermark 参数即可。

请求示例

GET /<ObjectKey>?watermark/3/type/<type>/image/<imageUrl>/text/<text> HTTP/1.1
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
Date: <GMT Date>
Authorization: <Auth String>

请求参数

请求参数说明如下:
参数
描述
类型
是否必选
ObjectKey
对象文件名,例如 folder/sample.jpg。
String
type
盲水印类型,有效值:1为半盲水印;2为全盲水印;3为文字盲水印
Int
image
盲水印图片地址,需要经过 URL 安全的 Base64 编码。 当 type 为1或2时必填,type 为3时无效。 指定的水印图片必须同时满足如下条件:
1. 盲水印图片与原图片必须位于同一个存储桶下;
2. URL 必须以 http:// 开始,不能省略 http 头,也不能填 https 头,例如以下地址为非法水印地址:
examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/watermark.png
https://examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/watermark.png
String
text
盲水印文字,需要经过 URL 安全的 Base64 编码。 当 type 为3时必填,type 为1或2时无效。
String
level
只对全盲水印(type=2)有效。level 的取值范围为{1,2,3},默认值为1,level 值越大则图片受影响程度越大、盲水印效果越好。
Int

实际案例

https://examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/sample.jpeg?watermark/3/type/3/text/dGVuY2VudCBjbG91ZA==

请求三:对 COS 上的图片添加盲水印

通过 API 能够对已存储在 COS 的图片进行添加盲水印的操作,并将结果存入到 COS。

请求示例

POST /<ObjectKey>?image_process HTTP/1.1
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
Date: GMT Date
Authorization: Auth String
Pic-Operations: <PicOperations>
说明:
Authorization: Auth String(详情请参见 请求签名 文档)。
通过子账号使用时,需要授予相关的权限,详情请参见 授权粒度详情 文档。

请求头

此接口使用公共请求头部,详情请参见 公共请求头部 文档。
请求包头部增加图片处理参数 Pic-Operations,Pic-Operations 为 json 格式的字符串,具体参数如下:
参数名称
描述
类型
是否必选
is_pic_info
是否返回原图信息。0表示不返回原图信息,1表示返回原图信息,默认为0
Int
rules
处理规则,一条规则对应一个处理结果(目前最多支持五条规则),不填则不进行图片处理
Array
rules(json 数组)中每一项具体参数如下:
参数名称
描述
类型
是否必选
bucket
存储结果的目标存储桶名称,格式为:BucketName-APPID,如果不指定的话默认保存到当前存储桶
String
fileid
处理后文件的保存路径及名称。名称规则说明:
例如源文件的路径及文件名为:/p1/test1.jpg
1. 以/开头为绝对路径,例如 fileid 值为 /p2/test2.jpg 时,表示在 p2 文件夹中存储了一个文件名为 test2.jpg 的文件。
2. 不以 / 开头为相对路径,例如 fileid 值为 p2/test2.jpg 时,表示在 p1 文件夹中新建了一个 p2 文件夹,然后在 p2 文件夹中存储了一个文件名为 test2.jpg 的文件。
3. 注意:请不要以 / 结尾,否则会产生空文件名。
String
rule
处理参数,可参见图片处理 API。 若按指定样式处理,则以 style/ 开头,后加样式名,如样式名为“test”,则 rule 字段为 style/test
String
使用盲水印需在 rule 中添加水印图参数(watermark),示例格式如下:
watermark/3/type/<type>/image/<imageUrl>/text/<text>/level/<level>
示例参数说明如下:
参数
描述
类型
是否必选
type
盲水印类型,有效值:1为半盲水印;2为全盲水印;3为文字盲水印
Int
image
盲水印图片地址,需要经过 URL 安全的 Base64 编码。 当 type 为1或2时必填,type 为3时无效。 指定的水印图片必须同时满足如下条件:
1. 盲水印图片与原图片必须位于同一个存储桶下;
2. URL 必须以 http:// 开始,不能省略 http 头,也不能填 https 头,例如以下地址为非法水印地址:
examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/watermark.png
https://examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/watermark.png
String
text
盲水印文字,需要经过 URL 安全的 Base64 编码。当 type 为3时必填,type 为1或2时无效。
String
level
只对全盲水印(type=2)有效。level 的取值范围为{1,2,3},默认值为1,level 值越大则图片受影响程度越大、盲水印效果越好。
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

实际案例

请求

POST /exampleobject?image_process 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": "exampleobject",
"rule": "watermark/3/type/1/image/aHR0cDovL2V4YW1wbGVzLTEyNTEwMDAwMDQucGljc2gubXlxY2xvdWQuY29tL3NodWl5aW4uanBn"
}]
}
Content-Length: 64

响应

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>exampleobject</Key>
<Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/exampleobject</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>exampleobject</Key>
<Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/exampleobject</Location>
<Format>png</Format>
<Width>640</Width>
<Height>427</Height>
<Size>463092</Size>
<Quality>100</Quality>
</Object>
</ProcessResults>
</UploadResult>

提取盲水印

请求一:上传时提取盲水印

请求示例

上传图片并提取盲水印的请求包与 PUT Object 接口一致,只需在请求包头部增加图片处理参数 Pic-Operations 并使用提取盲水印参数(watermark/4)即可。
PUT /<ObjectKey> HTTP/1.1
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
Date: GMT Date
Authorization:XXXXXXXXXXXX
Pic-Operations: <PicOperations>

[Object Content]
说明:
Authorization: Auth String(详情请参见 请求签名 文档)。
通过子账号使用时,需要授予相关的权限,详情请参见 授权粒度详情 文档。

请求头

此接口使用公共请求头部,详情请参见 公共请求头部 文档。
请求包头部增加图片处理参数 Pic-Operations,Pic-Operations 为 json 格式的字符串,具体参数如下:
参数名称
描述
类型
是否必选
is_pic_info
是否返回原图信息。0表示不返回原图信息,1表示返回原图信息,默认为0
Int
rules
处理规则,一条规则对应一个处理结果(目前最多支持五条规则),不填则不进行图片处理
Array
rules(json 数组)中每一项具体参数如下:
参数名称
描述
类型
是否必选
bucket
存储结果的目标存储桶名称,格式为:BucketName-APPID,如果不指定的话默认保存到当前存储桶
String
fileid
处理后文件的保存路径及名称。名称规则说明:
例如源文件的路径及文件名为:/p1/test1.jpg
1. 以/开头为绝对路径,例如 fileid 值为 /p2/test2.jpg 时,表示在 p2 文件夹中存储了一个文件名为 test2.jpg 的文件。
2. 不以 / 开头为相对路径,例如 fileid 值为 p2/test2.jpg 时,表示在 p1 文件夹中新建了一个 p2 文件夹,然后在 p2 文件夹中存储了一个文件名为 test2.jpg 的文件。
3. 注意:请不要以 / 结尾,否则会产生空文件名。
String
rule
处理参数,请参见图片处理 API。 若按指定样式处理,则以 style/ 开头,后加样式名,如样式名为“test”,则 rule 字段为 style/test
String
提取盲水印需在 rule 中添加水印图参数(watermark),示例格式如下:
watermark/4/type/<type>/image/<imageUrl>
示例参数说明如下:
参数
描述
类型
是否必选
type
盲水印类型,有效值:1为半盲水印;2为全盲水印;3为文字盲水印,必须跟添加盲水印时的 type 类型一致
Int
image
图片地址,根据 type 值填写:
当 type 为1,则 image 必填,且为原图图片地址。
当 type 为2,则 image 必填,且为水印图地址。
当 type 为3,则 image 无需填写(无效)。
image 需要经过 URL 安全的 Base64 编码,指定的图片必须同时满足如下条件:
1. 图片与存在水印的图片必须位于同一个对象存储桶下。
2. URL 必须以 http:// 开始,不能省略 http 头,也不能填 https 头,例如以下地址为非法水印地址:
examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/watermark.png
https://examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/watermark.png
String

请求参数

此接口无请求参数。

请求体

此接口请求的请求体为图片内容。

响应

响应头

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

响应体

响应体的 UploadResult.ProcessResults.Object 字段中新增 WatermarkStatus 字段,当盲水印提取的请求体中 type 参数为2时携带 WatermarkStatus 参数,其他情况不返回该参数。
参数
父节点
描述
类型
WatermarkStatus
Object
当 type 为2时返回该字段,表示提取到全盲水印的可信度。具体为0-100的数字,75分以上表示确定有盲水印,60-75表示疑似有盲水印,60以下可认为未提取到盲水印
Int

实际案例

请求

PUT /exampleobject1 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": "exampleobject2",
"rule": "watermark/4/type/2/image/aHR0cDovL2V4YW1wbGVzLTEyNTEwMDAwMDQucGljc2gubXlxY2xvdWQuY29tL2ZpbGVuYW1lLmpwZWc="
}]
}
Content-Length: 64

[Object Content]

响应

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>exampleobject1</Key>
<Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/exampleobject1</Location>
<ImageInfo>
<Format>JPEG</Format>
<Width>640</Width>
<Height>427</Height>
<Quality>100</Quality>
<Ave>0xa18454</Ave>
<Orientation>1</Orientation>
<FrameCount>1</FrameCount>
</ImageInfo>
</OriginalInfo>
<ProcessResults>
<Object>
<Key>exampleobject2</Key>
<Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/exampleobject2</Location>
<Format>png</Format>
<Width>640</Width>
<Height>427</Height>
<Size>463092</Size>
<Quality>100</Quality>
<FrameCount>1</FrameCount>
<WatermarkStatus>86</WatermarkStatus>
</Object>
</ProcessResults>
</UploadResult>
注意:
对于 type 值为1的请求,请求头 Pic-Operations 的 rule 字段中,imageUrl 为未添加盲水印的原图地址;对于 type 值为2的请求,包头 Pic-Operations 的 rule 字段中,imageUrl 为水印图的地址。
响应体 ProcessResults 字段的 url 为提取出来的水印图地址。

请求二:对 COS 上的图片提取盲水印

对 COS 上的图片提取盲水印的请求包与 云上数据处理 接口一致,只需在请求包头部增加图片处理参数 Pic-Operations 并使用提取盲水印参数(watermark/4)即可。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈