数据万象 快速入门(图片基础处理)

数据万象的图片基础处理操作,分别有图片缩放、剪裁、旋转、格式转换、质量变换、高斯模糊、锐化、水印、获取图片主题色等。
将每一个操作封装为一个 CITransform,而且支持各个基础操作可以组合使用,并将组合好的操作集合构建出可以直接进行网络请求的 URL。

相关产品
数据万象 产品页,含版本规格、价格与购买入口。

一、简介

模块 功能
CloudInfinite 该模块包含数据万象的基础图片处理操作,并支持各个操作能够相互组合,构建 URL 进行网络请求。
Loader 使用 CIImageLoadRequest 实例,请求网络图片并返回图片 data 数据。
SDWebImage-CloudInfinite 依赖于 SDWebImage、CloudInfinite 模块,提供了数据万象基础图片处理功能。

二、步骤1:安装 SDK

使用 Cocoapods 集成

1. 在你工程 Podfile 文件中添加模块:

pod 'CloudInfinite'

2. 在终端执行安装命令:

pod install

三、导入头文件

Objective-C

#import <CloudInfinite.h>

swift
在桥接文件中加入(项目名称-Bridging-Header)。

#import <CloudInfinite.h>

四、构建 CIImageLoadRequest 实例

1. 在使用 CloudInfinite 构建具有数据万象功能的图片 URL 时,首先需要实例化 CloudInfinite 类。

Objective-C

CloudInfinite * cloudInfinite = [CloudInfinite new];

swift

let cloudInfinite = CloudInfinite();

2. 实例化图片转换类 CITransformation,并设置相关操作,这里以 TPG 为例。更多功能请参见 基础图片处理。

Objective-C

CITransformation * transform = [CITransformation new];[transform setFormatWith:CIImageTypeTPG options:CILoadTypeUrlFooter];

swift

let transform = CITransformation();transform.setFormatWith(CIImageFormat.typeTPG, options: CILoadTypeEnum.urlFooter);

3. 使用 CloudInfinite 实例构建具有数据万象功能的图片 URL。

·同步方式构建

Objective-C

CIImageLoadRequest * imageloadRequest = [cloudInfinite requestWithBaseUrl:@"图片链接" transform:transform];// 图片urlNSURL * imageURL = imageloadRequest.url;// header参数NSString * heaer = imageloadRequest.header;

swift

let imageloadRequest = cloudInfinite.request(withBaseUrl: "图片链接", transform: transform);// 图片urllet imageURL = imageloadRequest.url;// header参数let heaer = imageloadRequest.header;

·异步方式构建

Objective-C

[cloudInfinite requestWithBaseUrl:@"图片链接" transform:transform request:^(CIImageLoadRequest * _Nonnull request) { // 图片url request.url; // header参数 request.header;}];

swift

cloudInfinite.request(withBaseUrl: "", transform: transform) { (request) in // 图片url request.url; // header 参数 request.header;};

注意:说明:

注意:仅在进行图片格式转换并且 options 设置为 loadtypeacceptheader 时,CIImageLoadRequest 的 header 参数为有效值。

在使用自定义 loader 请求图片时,如果需要使用到 header,则 header 需要拼接为如下:

NSDictionary * header = @{@"accept":[NSString stringWithFormat:@"image/%@",request.header]};

五、步骤3:加载图片

构建成功 CIImageLoadRequest 实例后,使用 CloudInfinite/Loader 模块进行图片加载。集成 CloudInfinite/Loader 模块,如下所示:

pod 'CloudInfinite/Loader'

六、请求图片 Data 数据

请求图片 NSData 数据,适用于请求 TPG 图片(需集成 TPG 解码模块)或者需要对图片二进制数据进行额外处理的图片。
Objective-C

// request 为上一步构建成功的 CIImageLoadRequest 实例;[[CIImageLoader shareLoader] loadData:request loadComplete:^(NSData * _Nullable data, NSError * _Nullable error) { // data:请求到的图片 data 数据;}];

swift

// request 为上一步构建成功的 CIImageLoadRequest 实例;CIImageLoader.share().loadData(request) { (data, error) in // data:请求到的图片 data 数据;};

七、加载普通图片

Objective-C

// 传入图片控件 imageView 以及 构建成功的 CIImageLoadRequest 实例;[[CIImageLoader shareLoader]display:imageView loadRequest:request placeHolder:nil loadComplete:^(NSData * _Nullable data, NSError * _Nullable error) { // data:请求到的图片 data 数据;}];

swift

// 传入图片控件 imageView 以及 构建成功的 CIImageLoadRequest 实例;CIImageLoader.share().display(imageView, loadRequest: request, placeHolder: nil) { (data, error) in // data:请求到的图片 data 数据;};

赞 (0)
上一篇 4天前
下一篇 4天前