盲水印

最近更新时间:2025-01-07 19:07:02

我的收藏

简介

盲水印功能是基于 数据万象(Cloud Infinite,CI)的一种全新水印模式。本文档提供关于盲水印的 API 概览以及 SDK 示例代码。
API
操作描述
对本地图片添加或提取盲水印并上传至存储桶

上传时处理

功能说明

在上传图片时,同步为该图片添加盲水印并存储或者同步提取该图片中的盲水印,并将提取出的水印图转存。

方法原型

def ci_put_object_from_local_file(self, Bucket, LocalFilePath, Key, EnableMD5=False, **kwargs)

请求示例

# 添加盲水印
watermark_url = 'http://{bucket}.cos.{region}.myqcloud.com/watermark.png'.format(bucket='examplebucket-1250000000', region=region)
watermark_url_base64 = bytes.decode(base64.b64encode(str.encode(watermark_url)))
print(watermark_url_base64)
response, data = client.ci_put_object_from_local_file(
Bucket='examplebucket-1250000000',
LocalFilePath='sample.png',
Key="sample.png",
# pic operation json struct
PicOperations='{"is_pic_info":1,"rules":[{"fileid": "format.png","rule": "watermark/3/type/1/image/' +
watermark_url_base64 + '" }]}'
)
print(response) print(data)

# 提取盲水印
sample_url = 'http://{bucket}.cos.{region}.myqcloud.com/sample.png'.format(bucket='examplebucket-1250000000', region=region)
sample_url_base64 = bytes.decode(base64.b64encode(str.encode(sample_url)))
response, data = client.ci_put_object_from_local_file(
Bucket='examplebucket-1250000000',
LocalFilePath='format.png',
Key="format.png",
# pic operation json struct
PicOperations='{"is_pic_info":1,"rules":[{"fileid": "watermark.png","rule": "watermark/4/type/1/image/' +
sample_url_base64 + '" }]}'
)
print(response) print(data)

参数说明

参数名称
参数描述
类型
是否必填
Bucket
存储桶名称,格式为 BucketName-APPID ,详情请参见 命名规范
String
LocalFilePath
需要处理的本地图片路径
String
Key
对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg
String
EnableMD5
开启对象上传的 MD5 校验
Bool

返回结果说明

response 为响应头,数据类型为 dict。data 为处理后的图片元信息与源图元信息。
response 内容
返回公共响应头部,详情请参见 公共响应头部 文档。
响应体 data
参照 盲水印 中的响应体参数说明。

下载时处理

功能说明

在下载图片时,同步为该图片添加盲水印。

方法原型

def ci_get_object(self, Bucket, Key, DestImagePath, Rule, **kwargs)

请求示例

# 添加盲水印
watermark_url = 'http://{bucket}.cos.{region}.myqcloud.com/watermark.png'.format(bucket='examplebucket-1250000000', region=region)
watermark_url_base64 = bytes.decode(base64.b64encode(str.encode(watermark_url)))
print(watermark_url_base64)
def when_download_object(dest_file, key, rule): response = client.ci_get_object( Bucket=bucket_name, Key=key, DestImagePath=dest_file, # pic operation json struct Rule=rule ) print(response['x-cos-request-id'])

def add_blind_watermark_when_download_object(): rule = 'watermark/3/type/1/image/' + watermark_url_base64 when_download_object('local.png', 'format.png', rule)

参数说明

参数名称
参数描述
类型
是否必选
Bucket
存储桶名称,格式为 BucketName-APPID ,详情请参见 命名规范
String
DestImagePath
下载图片的目的路径
String
Key
对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg
String
Rule
图片处理规则
String

返回结果说明

response 为响应头,数据类型为 dict。
response 内容
返回公共响应头部,详情请参见 公共响应头部 文档。

云上处理

功能说明

对 COS 上已存在的图片,通过添加盲水印参数的形式为图片添加盲水印并转存或者提取盲水印,并将提取出的水印图转存。

方法原型

def ci_image_process(self, Bucket, Key, **kwargs)

请求示例

watermark_url = 'http://{bucket}.cos.{region}.myqcloud.com/watermark.png'.format(bucket='examplebucket-1250000000', region=region)
watermark_url_base64 = bytes.decode(base64.b64encode(str.encode(watermark_url)))
print(watermark_url_base64)
def process_on_cloud(key, pic_operations): response, data = client.ci_image_process( Bucket=bucket_name, Key=key, # pic operation json struct PicOperations=pic_operations ) print(response['x-cos-request-id']) print(data)
# 添加盲水印
def add_blind_watermark_process_on_cloud(): operations = '{"is_pic_info":1,"rules":[{"fileid": "format.png",' \\ '"rule": "watermark/3/type/1/image/' \\ + watermark_url_base64 + '" }]}' process_on_cloud('format.png', operations)

# 提取盲水印
sample_url = 'http://{bucket}.cos.{region}.myqcloud.com/sample.png'.format(bucket='examplebucket-1250000000', region=region)
sample_url_base64 = bytes.decode(base64.b64encode(str.encode(sample_url)))
def get_blind_watermark_process_on_cloud(): print(sample_url_base64) operations = '{"is_pic_info":1,"rules":[{"fileid": "sample.png",' \\ '"rule": "watermark/4/type/1/image/' \\ + sample_url_base64 + '" }]}' process_on_cloud('format.png', operations)

参数说明

参数名称
参数描述
类型
是否必填
Bucket
存储桶名称,格式为 BucketName-APPID ,详情请参见 命名规范
String
Key
对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg
String
PicOperations
图片处理规则
String

返回结果说明

response 为响应头,数据类型为 dict。data 为处理后的图片元信息与源图元信息。
response 内容
返回公共响应头部,详情请参见 公共响应头部 文档。
响应体 data
参照 盲水印 中的响应体参数说明。