简介
本文档提供关于盲水印相关的 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/bucketput.bucket = @"examplebucket-1250000000";put.body = [@"123456789" dataUsingEncoding:NSUTF8StringEncoding];QCloudPicOperations * op = [[QCloudPicOperations alloc]init];// 是否返回原图信息。0表示不返回原图信息,1表示返回原图信息,默认为0op.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.pngrule.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];
说明
Swift
let put = QCloudPutObjectWatermarkRequest<AnyObject>();// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1"put.object = "exampleobject";// 存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucketput.bucket = "examplebucket-1250000000";put.body = "123456789".data(using: .utf8)! as NSData;let op = QCloudPicOperations.init();// 是否返回原图信息。0表示不返回原图信息,1表示返回原图信息,默认为0op.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.pngrule.imageURL = "watermarkURL";op.rule = [rule];put.picOperations = op;put.setFinish { (outoutObject, error) in};QCloudCOSXMLService.defaultCOSXML().putWatermarkObject(put);
说明
示例代码二:下载时添加盲水印
Objective-C
QCloudGetObjectRequest * request = [QCloudGetObjectRequest new];// 存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucketrequest.bucket = @"examplebucket-1250000000";// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1"request.object = @"exampleobject";//处理参数,规则参见:https://cloud.tencent.com/document/product/436/46782request.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];
说明
Swift
let request : QCloudGetObjectRequest = QCloudGetObjectRequest();// 存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucketrequest.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/46782request.watermarkRule = @"watermark/3/type/2/image/aHR0cDovL2NpLTEyNTM2NTMzNjcuY29zLmFwLWd1YW5nemhvdS5teXFjbG91ZC5jb20vcHJvdGVjdGlvbl9ibGluZF93YXRlcm1hcmtfaWNvbi5wbmc=";// 监听下载进度request.sendProcessBlock = { (bytesDownload, totalBytesDownload,totalBytesExpectedToDownload) in// bytesDownload 新增字节数// totalBytesDownload 本次下载接收的总字节数// totalBytesExpectedToDownload 本次下载的目标字节数}// 监听下载结果request.finishBlock = { (result, error) inif let result = result {// result 包含响应的 header 信息} else {print(error!);}}QCloudCOSXMLService.defaultCOSXML().getObject(request);
说明