图片处理是OSS提供的海量、安全、低成本、高可靠的图片处理服务。原始图片上传到OSS后,您可以通过简单的RESTful接口,在任何时间、任何地点、任何互联网设备上对图片进行处理。
图片处理支持的参数请参见处理参数。
使用方法
图片处理使用标准的HTTP GET请求。您可以在URL的QueryString中设置处理参数。
如果图片文件的访问权限为私有读写,必须通过授权才能进行访问。
- 匿名访问
OSSTask * task = [_client presignPublicURLWithBucketName:_publicBucketName withObjectKey:@"hasky.jpeg" withParameters:@{@"x-oss-process": @"image/resize,w_50"}];
- 授权访问
SDK中使用图片处理时,只需要在下载图片时调用
request.setxOssProcess()
方法设置处理参数。示例如下:OSSGetObjectRequest * request = [OSSGetObjectRequest new]; request.bucketName = @"<bucketName>"; request.objectKey = @"example.jpg"; // 图片处理。 request.xOssProcess = @"image/resize,m_lfit,w_100,h_100"; OSSTask * getTask = [client getObject:request]; [getTask continueWithBlock:^id(OSSTask *task) { if (!task.error) { NSLog(@"download image success!"); OSSGetObjectResult * getResult = task.result; NSLog(@"download image data: %@", getResult.dowloadedData); } else { NSLog(@"download object failed, error: %@" ,task.error); } return nil; }]; // [getTask waitUntilFinished]; // [request cancel];
- SDK访问
OSSGetObjectRequest * request = [OSSGetObjectRequest new]; request.bucketName = @"bucket-name"; // 设置Bucket名称。 request.objectKey = @"image-name"; // 设置图片名称。 request.xOssProcess = @"image/resize,m_lfit,w_100,h_100"; // 将图片缩放为固定宽高100 px。 OSSTask * task = [ossClient getObject:request];
图片处理持久化
以下代码用于图片处理持久化:
OSSImagePersistRequest *request = [OSSImagePersistRequest new]; request.fromBucket = _privateBucketName; request.fromObject = OSS_IMAGE_KEY; request.toBucket = _privateBucketName; request.toObject = @"image_persist_key"; request.action = @"image/resize,w_100"; //request.action = @"resize,w_100"; [[[ossClient imageActionPersist:request] continueWithBlock:^id _Nullable(OSSTask * _Nonnull task) { return nil; }] waitUntilFinished];
图片处理工具
可视化图片处理工具 ImageStyleViewer ,可以直观的看到OSS图片处理的结果。