有奖捉虫:云通信与企业服务文档专题,速来> HOT

简介

本文档提供关于基础图片处理的相关的 API 概览以及 SDK 示例代码。
服务
功能
说明
基础图片处理服务
等比缩放、设定目标宽高缩放等多种方式
普通裁剪、缩放裁剪、内切圆、人脸智能裁剪
自适应旋转、普通旋转
格式转换、GIF 格式优化、渐进显示
针对 JPG 和 WEBP 图片进行质量变换
对图片进行模糊处理
对图片进行锐化处理
添加水印
获取图片信息
包括 EXIF 信息
快速实现图片格式转换、缩略、剪裁等功能,生成缩略图

SDK 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/bucket
request.bucket = @"examplebucket-1250000000";
request.body =  [@"123456789" dataUsingEncoding:NSUTF8StringEncoding];
QCloudPicOperations * op = [[QCloudPicOperations alloc]init];
// 是否返回原图信息。0表示不返回原图信息,1表示返回原图信息,默认为0
op.is_pic_info = NO;
QCloudPicOperationRule * rule = [[QCloudPicOperationRule alloc]init];
// 处理结果的文件路径名称,如以/开头,则存入指定文件夹中,否则,存入原图文件存储的同目录
request.fileid = @"test";
// rule 参数请前往图片基础操作页面,选择对应的操作,查看rules.rule参数。 https://cloud.tencent.com/document/product/460/6924
request.rule = @"imageMogr2/***";
op.rule = @[rule];
request.picOperations = op;
[request setFinishBlock:^(QCloudImageProcessResult * outputObject, NSError *error) {
// 完成回调
}];
[[QCloudCOSXMLService defaultCOSXML] UploadOperations:request];
说明
更多完整示例,请前往 GitHub 查看。
Swift
let request = QCloudCIUploadOperationsRequest()
// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "video/xxx/movie.mp4"
request.object = "exampleobject"
// 存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucket
request.bucket = "examplebucket-1250000000"
request.body = "123456789".data(using: .utf8)
let op = QCloudPicOperations()
// 是否返回原图信息。0表示不返回原图信息,1表示返回原图信息,默认为0
op.is_pic_info = false
let rule = QCloudPicOperationRule()
// 处理结果的文件路径名称,如以/开头,则存入指定文件夹中,否则,存入原图文件存储的同目录
request.fileid = "test"
// rule 参数请前往图片基础操作页面,选择对应的操作,查看rules.rule参数。 https://cloud.tencent.com/document/product/460/6924
request.rule = "imageMogr2/***"
op.rule = [rule]
request.picOperations = op
request.setFinish { (outputObject: QCloudImageProcessResult?, error: Error?) in
    // 完成回调
}
QCloudCOSXMLService.defaultCOSXML().uploadOperations(request)
说明
更多完整示例,请前往 GitHub 查看。

云上数据处理

下面示例展示了如何在上传图片时自动实现图片处理。
图片上传完成后,COS 会存储原始图片和已处理过的图片。后续用户可以通过普通的下载请求获取处理结果。

示例代码

Objective-C
QCloudCICloudDataOperationsRequest* put = [QCloudCICloudDataOperationsRequest new];

// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "video/xxx/movie.mp4"
put.object = @"exampleobject";
// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
put.bucket = @"examplebucket-1250000000";

QCloudPicOperations * op = [[QCloudPicOperations alloc]init];

// 是否返回原图信息。0表示不返回原图信息,1表示返回原图信息,默认为0
op.is_pic_info = NO;
QCloudPicOperationRule * rule = [[QCloudPicOperationRule alloc]init];

// 处理结果的文件路径名称,如以/开头,则存入指定文件夹中,否则,存入原图文件存储的同目录
rule.fileid = @"test";

// rule 参数请前往图片基础操作页面,选择对应的操作,查看rules.rule参数。 https://cloud.tencent.com/document/product/460/6924
rule.rule = @"imageMogr2/***"

op.rule = @[rule];
put.picOperations = op;
[put setFinishBlock:^(QCloudImageProcessResult *outputObject, NSError *error) {

}];
[[QCloudCOSXMLService defaultCOSXML] CloudDataOperations:put];
说明
更多完整示例,请前往 GitHub 查看。
Swift
let put = QCloudCICloudDataOperationsRequest<AnyObject>();

// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "video/xxx/movie.mp4"
put.object = "exampleobject";
// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket

put.bucket = "examplebucket-1250000000";
let op = QCloudPicOperations.init();

// 是否返回原图信息。0表示不返回原图信息,1表示返回原图信息,默认为0
op.is_pic_info = false;

let rule = QCloudPicOperationRule.init();

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

rule.fileid = "test";

// rule 参数请前往图片基础操作页面,选择对应的操作,查看rules.rule参数。 https://cloud.tencent.com/document/product/460/6924
rule.rule = "imageMogr2/***"

op.rule = [rule];
put.picOperations = op;
put.setFinish { (outoutObject, error) in

};
QCloudCOSXMLService.defaultCOSXML().cloudDataOperations(put);
说明
更多完整示例,请前往 GitHub 查看。