API 文档

SDK 文档

诚邀爱技术、爱分享的你,成为文档内容共建者> HOT

简介

为了开发者更方便快速地使用数据万象的基础图片处理功能和 CDN 的云闪图片分发功能,我们提供以下5个模块,开发者可根据具体需求进行选择。

模块 功能
CloudInfinite(默认模块) 该模块包含数据万象的基础图片处理操作,并支持各个操作能够相互组合,构建 URL 进行网络请求。
Loader 使用 CIImageLoadRequest 实例,请求网络图片并返回图片 data 数据。
TPG 解码 TPG 格式图片并显示,可用于显示普通图片,也可用于 TPG 图。
AVIF 解码 AVIF 格式图片并显示,可用于显示普通图片,也可用于 AVIF 图(v1.3.8及以上)。
SDWebImage-CloudInfinite 依赖于 SDWebImage、CloudInfinite 模块,提供了数据万象基础图片处理功能。
说明:

相关资源

准备工作

  1. 您需要一个 iOS 应用,这个应用可以是您现有的工程,也可以是您新建的一个空的工程。
  2. 请确保应用基于 iOS 8.0 及以上版本的 SDK 构建。

步骤1:安装 SDK CloudInfinite 模块

CloudInfinite 模块主要功能:

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

使用 Cocoapods 集成

说明:

推荐使用 cocoapod 方式,下面涉及集成相关模块步骤一致,不再重复说明。

  1. 在您工程 Podfile 文件中添加模块:
        pod 'CloudInfinite'
  2. 在终端执行安装命令:
        pod install

步骤2:开始使用

导入头文件

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();

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

Objective-C

    CITransformation * transform = [CITransformation new];
    [transform setFormatWith:CIImageTypeTPG options:CILoadTypeUrlFooter];
swift
    let transform = CITransformation();
    transform.setFormatWith(CIImageFormat.typeTPG, options: CILoadTypeEnum.urlFooter);

  1. 使用 CloudInfinite 实例构建具有数据万象功能的图片 URL。
    • 同步方式构建

Objective-C

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

swift

    let imageloadRequest = cloudInfinite.request(withBaseUrl: "图片链接", transform: transform);
    // 图片url
    let 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 数据;
};

目录