简介
本文档提供关于基础图片处理的相关的 API 概览以及 SDK 示例代码。
SDK API 参考
上传时使用图片处理
说明:
COS iOS SDK 版本需要大于等于 v6.2.9。低于v6.2.9请使用 QCloudPutObjectWatermarkRequest 接口实现该功能。
下面示例展示了如何在上传图片时自动实现图片处理。
图片上传完成后,COS 会存储原始图片和已处理过的图片。后续用户可以通过普通的下载请求获取处理结果。
示例代码
Objective-C
QCloudCIUploadOperationsRequest* request = [QCloudCIUploadOperationsRequest new];// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "video/xxx/movie.mp4"request.object = @"exampleobject";// 存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucketrequest.bucket = @"examplebucket-1250000000";request.body = [@"123456789" dataUsingEncoding:NSUTF8StringEncoding];QCloudPicOperations * op = [[QCloudPicOperations alloc]init];// 是否返回原图信息。0表示不返回原图信息,1表示返回原图信息,默认为0op.is_pic_info = NO;QCloudPicOperationRule * rule = [[QCloudPicOperationRule alloc]init];// 处理结果的文件路径名称,如以/开头,则存入指定文件夹中,否则,存入原图文件存储的同目录request.fileid = @"test";// rule 参数请前往图片基础操作页面,选择对应的操作,查看rules.rule参数。 https://cloud.tencent.com/document/product/460/6924request.rule = @"imageMogr2/***";op.rule = @[rule];request.picOperations = op;[request setFinishBlock:^(QCloudImageProcessResult * outputObject, NSError *error) {// 完成回调}];[[QCloudCOSXMLService defaultCOSXML] UploadOperations:request];
说明
Swift
let request = QCloudCIUploadOperationsRequest()// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "video/xxx/movie.mp4"request.object = "exampleobject"// 存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucketrequest.bucket = "examplebucket-1250000000"request.body = "123456789".data(using: .utf8)let op = QCloudPicOperations()// 是否返回原图信息。0表示不返回原图信息,1表示返回原图信息,默认为0op.is_pic_info = falselet rule = QCloudPicOperationRule()// 处理结果的文件路径名称,如以/开头,则存入指定文件夹中,否则,存入原图文件存储的同目录request.fileid = "test"// rule 参数请前往图片基础操作页面,选择对应的操作,查看rules.rule参数。 https://cloud.tencent.com/document/product/460/6924request.rule = "imageMogr2/***"op.rule = [rule]request.picOperations = oprequest.setFinish { (outputObject: QCloudImageProcessResult?, error: Error?) in// 完成回调}QCloudCOSXMLService.defaultCOSXML().uploadOperations(request)
说明
云上数据处理
下面示例展示了如何在上传图片时自动实现图片处理。
图片上传完成后,COS 会存储原始图片和已处理过的图片。后续用户可以通过普通的下载请求获取处理结果。
示例代码
Objective-C
QCloudCICloudDataOperationsRequest* put = [QCloudCICloudDataOperationsRequest new];// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "video/xxx/movie.mp4"put.object = @"exampleobject";// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucketput.bucket = @"examplebucket-1250000000";QCloudPicOperations * op = [[QCloudPicOperations alloc]init];// 是否返回原图信息。0表示不返回原图信息,1表示返回原图信息,默认为0op.is_pic_info = NO;QCloudPicOperationRule * rule = [[QCloudPicOperationRule alloc]init];// 处理结果的文件路径名称,如以/开头,则存入指定文件夹中,否则,存入原图文件存储的同目录rule.fileid = @"test";rule.rule = @"imageMogr2/***"op.rule = @[rule];put.picOperations = op;[put setFinishBlock:^(QCloudImageProcessResult *outputObject, NSError *error) {}];[[QCloudCOSXMLService defaultCOSXML] CloudDataOperations:put];
说明
Swift
let put = QCloudCICloudDataOperationsRequest<AnyObject>();// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "video/xxx/movie.mp4"put.object = "exampleobject";// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucketput.bucket = "examplebucket-1250000000";let op = QCloudPicOperations.init();// 是否返回原图信息。0表示不返回原图信息,1表示返回原图信息,默认为0op.is_pic_info = false;let rule = QCloudPicOperationRule.init();// 处理结果的文件路径名称,如以/开头,则存入指定文件夹中,否则,存入原图文件存储的同目录rule.fileid = "test";rule.rule = "imageMogr2/***"op.rule = [rule];put.picOperations = op;put.setFinish { (outoutObject, error) in};QCloudCOSXMLService.defaultCOSXML().cloudDataOperations(put);
说明