简介
本文档提供关于盲水印相关的 API 概览以及 SDK 示例代码。
关于盲水印 API 文档,请参见 盲水印。
SDK API 参考
SDK 所有接口的具体参数与方法说明,请参考 SDK API。
添加盲水印
功能说明
盲水印支持在上传时添加和下载时添加。
示例代码一:上传时添加盲水印
Objective-C
QCloudPutObjectWatermarkRequest* put = [QCloudPutObjectWatermarkRequest new];
// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1"
put.object = @"exampleobject";
// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
put.bucket = @"examplebucket-1250000000";
put.body = [@"123456789" dataUsingEncoding:NSUTF8StringEncoding];
QCloudPicOperations * op = [[QCloudPicOperations alloc]init];
// 是否返回原图信息。0表示不返回原图信息,1表示返回原图信息,默认为0
op.is_pic_info = NO;
QCloudPicOperationRule * rule = [[QCloudPicOperationRule alloc]init];
// 处理结果的文件路径名称,如以/开头,则存入指定文件夹中,否则,存入原图文件存储的同目录
rule.fileid = @"test";
// 盲水印图片在cos上的地址:如 http://examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/protection_blind_watermark_icon.png
rule.imageURL = @"watermarkURL"; // 水印文字只能是 [a-zA-Z0-9]
//操作:有效值 :QCloudPicOperationRuleActionPut:添加盲水印 QCloudPicOperationRuleActionExtrac:提取盲水印
rule.actionType =QCloudPicOperationRuleActionPut;
// 盲水印类型,有效值:QCloudPicOperationRuleHalf 半盲;QCloudPicOperationRuleFull: 全盲;QCloudPicOperationRuleText 文字
rule.type = QCloudPicOperationRuleFull;
op.rule = @[rule];
put.picOperations = op;
[put setFinishBlock:^(QCloudPutObjectWatermarkResult *outputObject, NSError *error) {
}];
[[QCloudCOSXMLService defaultCOSXML] PutWatermarkObject:put];
说明:更多完整示例,请前往 GitHub 查看。
Swift
let put = QCloudPutObjectWatermarkRequest<AnyObject>();
// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1"
put.object = "exampleobject";
// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
put.bucket = "examplebucket-1250000000";
put.body = "123456789".data(using: .utf8)! as NSData;
let op = QCloudPicOperations.init();
// 是否返回原图信息。0表示不返回原图信息,1表示返回原图信息,默认为0
op.is_pic_info = false;
let rule = QCloudPicOperationRule.init();
// 处理结果的文件路径名称,如以/开头,则存入指定文件夹中,否则,存入原图文件存储的同目录
rule.fileid = "test";
//操作:有效值 :QCloudPicOperationRuleActionPut:添加盲水印 QCloudPicOperationRuleActionExtrac:提取盲水印
rule.actionType = .put;
// 盲水印类型,有效值:QCloudPicOperationRuleHalf 半盲;QCloudPicOperationRuleFull: 全盲;QCloudPicOperationRuleText 文字
rule.type = .full;
// 盲水印图片在cos上的地址:如 http://examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/watermark_icon.png
rule.imageURL = "watermarkURL";
op.rule = [rule];
put.picOperations = op;
put.setFinish { (outoutObject, error) in
};
QCloudCOSXMLService.defaultCOSXML().putWatermarkObject(put);
说明:更多完整示例,请前往 GitHub 查看。
示例代码二:下载时添加盲水印
Objective-C
QCloudGetObjectRequest * request = [QCloudGetObjectRequest new];
// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
request.bucket = @"examplebucket-1250000000";
// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1"
request.object = @"exampleobject";
//处理参数,规则参见:https://cloud.tencent.com/document/product/436/46782
request.watermarkRule = @"watermark/3/type/2/image/aHR0cDovL2NpLTEyNTM2NTMzNjcuY29zLmFwLWd1YW5nemhvdS5teXFjbG91ZC5jb20vcHJvdGVjdGlvbl9ibGluZF93YXRlcm1hcmtfaWNvbi5wbmc=";
// 设置下载的路径 URL,如果设置了,文件将会被下载到指定路径中
request.downloadingURL = [NSURL fileURLWithPath:@"Local File Path"];
// 本地已下载的文件大小,如果是从头开始下载,请不要设置
request.localCacheDownloadOffset = 100;
// 监听下载结果
[request setFinishBlock:^(id outputObject, NSError *error) {
// outputObject 包含所有的响应 http 头部
NSDictionary* info = (NSDictionary *) outputObject;
}];
// 监听下载进度
[request setDownProcessBlock:^(int64_t bytesDownload,
int64_t totalBytesDownload,
int64_t totalBytesExpectedToDownload) {
// bytesDownload 新增字节数
// totalBytesDownload 本次下载接收的总字节数
// totalBytesExpectedToDownload 本次下载的目标字节数
}];
[[QCloudCOSXMLService defaultCOSXML] defaultCOSXML:request];
说明:更多完整示例,请前往 GitHub 查看。
Swift
let request : QCloudGetObjectRequest = QCloudGetObjectRequest();
// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
request.bucket = "examplebucket-1250000000";
// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1"
request.object = "exampleobject";
// 设置下载的路径 URL,如果设置了,文件将会被下载到指定路径中
request.downloadingURL = NSURL.fileURL(withPath: "Local File Path") as URL?;
// 本地已下载的文件大小,如果是从头开始下载,请不要设置
request.localCacheDownloadOffset = 100;
//处理参数,规则参见:https://cloud.tencent.com/document/product/436/46782
request.watermarkRule = @"watermark/3/type/2/image/aHR0cDovL2NpLTEyNTM2NTMzNjcuY29zLmFwLWd1YW5nemhvdS5teXFjbG91ZC5jb20vcHJvdGVjdGlvbl9ibGluZF93YXRlcm1hcmtfaWNvbi5wbmc=";
// 监听下载进度
request.sendProcessBlock = { (bytesDownload, totalBytesDownload,
totalBytesExpectedToDownload) in
// bytesDownload 新增字节数
// totalBytesDownload 本次下载接收的总字节数
// totalBytesExpectedToDownload 本次下载的目标字节数
}
// 监听下载结果
request.finishBlock = { (result, error) in
if let result = result {
// result 包含响应的 header 信息
} else {
print(error!);
}
}
QCloudCOSXMLService.defaultCOSXML().getObject(request);
说明:更多完整示例,请前往 GitHub 查看。