数据万象盲水印功能介绍

一 简介

盲水印功能是腾讯云万象优图提供的全新水印模式。通过该功能,您可将水印图以不可见的形式添加到原图信息中,并不会对原图质量产生太大影响。在图片被盗取后,您可对疑似被盗取的资源进行盲水印提取,验证图片归属。

万象优图提供的盲水印功能拥有半盲、全盲和文字盲水印三种类型:

1. 半盲水印拥有更强的抗攻击性,能抵抗裁剪、涂抹、变色等多种攻击,但提取水印需要原图。

2. 全盲水印无需原图即可提取水印图,但抗攻击性较差;

3. 文字盲水印可直接将文字添加到图片中,无需使用水印图片。

适用场景:

1. 鉴权追责

2. 上传查重

3. 资源防泄漏

二 示例

原图

原图

水印图

水印图

添加盲水印的图片

添加了盲术印的图片

提取盲水印的结果图

盲水印提取结果图

使用盲水印功能,可以从图片中提取出盲水印图。

三 接口

腾讯云万象优图支持盲水印处理功能,提供两个接口:添加盲水印和提取盲水印。

1 添加盲水印

该接口能为图片添加盲水印,并存储在万象优图。目前,水印图片必须指定为已存储于万象优图中的图片。

图片上传时添加盲水印的请求包与 cos Put Object接口类似,只需将 host 信息更改为万象优图的域名,在请求包头部增加图片处理参数 Pic-Operations 并使用盲水印参数即可。

cos Put Object接口详见https://cloud.tencent.com/document/product/436/7749

请求包

请求包包头示例如下:

PUT /<ObjectName> HTTP/1.1 Host: <BucketName-APPID>.pic.<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

存储结果的目标bucket名称,形如bucketName-appid,如果不指定的话默认保存到当前bucket

fileid

String

处理结果的文件路径名称,如以’/’开头,则存入指定文件夹中,否则,存入原图文件存储的同目录

rule

String

处理参数,参见万象优图图片处理API。 若按指定样式处理,则以”style/”开头,后加样式名,如样式名为”test”,则rule字段为”style/test”

添加盲水印需在 rule 中添加水印图参数(watermark),相关内容如下:

watermark/3/type/<type>/image/<imageUrl>/text/<text>

watermark参数说明:

参数

类型

必选

描述

type

Int

盲水印类型,有效值:1 半盲;2 全盲;3 文字

image

String

盲水印图片地址,需要经过 URL 安全的 Base64 编码。 当type为1或2时必填,type为3时无效。 指定的水印图片必须同时满足如下 3 个条件: 1. 盲水印图片与原图片必须位于同一个对象存储桶下; 2. URL 需使用万象优图源站域名(不能使用CDN 加速、COS 源站域名),如:examplebucket-1250000000.image.myqcloud.com属于 CDN 加速域名,不能在水印 URL 中使用; 3. URL必须以http://开始,不能省略 http 头,也不能填 https 头,如:examplebucket-1250000000.picsh.myqcloud.com/shuiyin_2.png,https://examplebucket-1250000000.picsh.myqcloud.com/shuiyin_2.png就是非法的水印 URL。

text

String

盲水印文字,需要经过 URL 安全的 Base64 编码。 当type为3时必填,type为1或2时无效。

响应包

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

节点名称

父节点

类型

描述

UploadResult

Container

原图信息

UploadResult节点内容:

节点名称

父节点

类型

描述

OriginalInfo

UploadResult

Container

原图信息

ProcessResults

UploadResult

Container

图片处理结果

OriginalInfo节点内容:

节点名称

父节点

类型

描述

Key

UploadResult .OriginalInfo

String

原图文件名

Location

UploadResult .OriginalInfo

String

图片路径

ImageInfo

UploadResult .OriginalInfo

Container

原图图片信息

ImageInfo节点内容:

节点名称

父节点

类型

描述

Format

UploadResult .OriginalInfo .ImageInfo

String

格式

Width

UploadResult .OriginalInfo .ImageInfo

Int

图片宽度

Height

UploadResult .OriginalInfo .ImageInfo

Int

图片高度

Quality

UploadResult .OriginalInfo .ImageInfo

Int

图片质量

Ave

UploadResult .OriginalInfo .ImageInfo

String

图片主色调

Orientation

UploadResult .OriginalInfo .ImageInfo

Int

图片旋转角度

ProcessResults节点内容:

节点名称

父节点

类型

描述

Object

UploadResult.ProcessResults

Container

每一个图片处理结果

Object节点内容:

节点名称

父节点

类型

描述

Key

UploadResult.ProcessResults.Object

String

文件名

Location

UploadResult.ProcessResults.Object

String

图片路径

Format

UploadResult.ProcessResults.Object

String

图片格式

Width

UploadResult.ProcessResults.Object

Int

图片宽度

Height

UploadResult.ProcessResults.Object

Int

图片高度

Size

UploadResult.ProcessResults.Object

Int

图片大小

Quality

UploadResult.ProcessResults.Object

Int

图片质量

示例

请求

PUT /filename.jpg HTTP/1.1 Host: examplebucket-1250000000.pic.ap-chengdu.myqcloud.com Date: Wed, 28 Oct 2015 20:32:00 GMT Authorization:XXXXXXXXXXXX Pic-Operations:{"rules":[{"fileid":"test.jpg","rule":"watermark/3/type/2/image/XXXXXXXXX"}]} Content-Length: 2000 [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:XXXXXXXXXXXXX <UploadResult> <OriginalInfo> <Key> filename.jpg</Key> <Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/filename.jpg</Location> </OriginalInfo> <ProcessResults> <Object> <Key>test.jpg</Key> <Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/test.jpg</Location> <Format>png</Format> <Width>640</Width> <Height>427</Height> <Size>463092</Size> <Quality>100</Quality> </Object> </ProcessResults> </UploadResult>

2 提取盲水印

该接口为存在盲水印的图片提取盲水印,并存储在万象优图。

盲水印提取的请求包与添加盲水印的请求包一致,只需将请求包头部-图片处理参数 Pic-Operations 中的图片处理参数做修改即可。

提取盲水印需在 rule 中添加水印图参数(watermark),相关内容如下:

watermark/4/type/<type>/image/<imageUrl>

参数说明

参数

类型

必选

描述

type

Int

盲水印类型,有效值:1 半盲;2 全盲;3 文字,必须跟打盲水印的type类型一致

image

String

图片地址,当type为1或2时必填,type为3时无效。 type为1时,为原图图片地址;type为2时,为水印图地址; 需要经过 URL 安全的 Base64 编码。指定的图片必须同时满足如下 3 个条件: 1. 图片与存在水印的图片必须位于同一个对象存储桶下; 2. URL 需使用万象优图源站域名(不能使用CDN 加速、COS 源站域名),如:examplebucket-1250000000.image.myqcloud.com属于 CDN 加速域名,不能在水印 URL 中使用; 3. URL必须以http://开始,不能省略 http 头,也不能填 https 头,如:examplebucket-1250000000.picsh.myqcloud.com/shuiyin_2.png,https://examplebucket-1250000000.picsh.myqcloud.com/shuiyin_2.png就是非法的水印 URL。

返回内容

返回内容中的 UploadResult——ProcessResults——Object 字段中新增 WatermarkStatus 字段,当盲水印提取的请求包中 type 参数为2时携带该参数,其他情况不返回该参数。

参数

类型

父节点

描述

WatermarkStatus

Int

Object

当 type 为2时返回该字段,表示提取到全盲水印的可信度。具体为0-100的数字,75分以上表示确定有盲水印,60-75表示疑似有盲水印,60以下可认为未提取到盲水印

示例

请求

PUT /filename.jpg HTTP/1.1 Host: examplebucket-1250000000.pic.ap-chengdu.myqcloud.com Date: Wed, 28 Oct 2015 20:32:00 GMT Authorization:XXXXXXXXXXXX Pic-Operations:{"rules":[{"fileid":"test.jpg","rule":"watermark/4/type/2/image/XXXXX"}]} Content-Length: 2000 [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:XXXXXXXXXXXXX <UploadResult> <OriginalInfo> <Key> filename.jpg</Key> <Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/filename.jpg</Location> </OriginalInfo> <ProcessResults> <Object> <Key>test.jpg</Key> <Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/test.jpg</Location> <Format>png</Format> <Width>640</Width> <Height>427</Height> <Size>463092</Size> <Quality>100</Quality> <WatermarkStatus>99</WatermarkStatus> </Object> </ProcessResults> </UploadResult>

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

盲水印

1 篇文章3 人订阅

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券