API 文档

SDK 文档

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

简介

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

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

相关资源

准备工作

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

步骤1:安装 cloud-infinite SDK

cloud-infinite 模块主要功能如下:

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

使用 Gradle 集成

说明:

bintray 仓库已经下线,万象相关 SDK 已经迁移到 mavenCentral,引用路径和之前不同,您在更新的时候请使用新的引用路径。

在项目级别(通常是根目录下)的 build.gradle 中添加:

repositories {
    google()
    // 增加这行
    mavenCentral() 
}

在app或者其他类库的 build.gradle 中添加:

 implementation 'com.qcloud.cos:cloud-infinite:1.2.1'            

步骤2:开始使用

构建 CIImageLoadRequest 实例

  1. 在使用 CloudInfinite 构建具有数据万象功能的图片 URL 时,首先需要实例化 CloudInfinite 类。
    CloudInfinite cloudInfinite = new CloudInfinite();
  2. 实例化图片转换类 CITransformation,并设置相关操作,这里以 TPG 为例。更多功能请参见 基础图片处理
    CITransformation transform = new CITransformation();
    transform.format(CIImageFormat.TPG, CIImageLoadOptions.LoadTypeUrlFooter)
  3. 使用 CloudInfinite 实例构建具有万象功能的图片 URL。
    • 同步方式构建
      CIImageLoadRequest request = cloudInfinite.requestWithBaseUrlSync(objectUrl, transform);
      // 图片url
      URL imageURL = request.getUrl();
      // header参数
      Map<String, List<String>> heaers = request.getHeaders();
    • 异步方式构建
      cloudInfinite.requestWithBaseUrl(objectUrl, transform, new CloudInfiniteCallback() {
              @Override
              public void onImageLoadRequest(@NonNull final CIImageLoadRequest request) {
                  // 图片url
                  URL imageURL = request.getUrl();
                  // header参数
                  Map<String, List<String>> heaers = request.getHeaders();
              }
          });
说明:

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

步骤3:加载图片

构建成功 CIImageLoadRequest 实例后,使用 cloud-infinite-loader SDK 进行图片加载。

  1. 集成 cloud-infinite-loader SDK。
    implementation 'com.qcloud.cos:cloud-infinite-loader:1.2.1'
  2. 加入 INTERNET 权限。
    <uses-permission android:name="android.permission.INTERNET" />
  3. 加载图片。
    • 直接加载 ImageView
      CIImageLoader ciImageLoader = new CIImageLoader();
      ciImageLoader.display(request, imageview);
    • 请求得到图片数据
      CIImageLoader ciImageLoader = new CIImageLoader();
      ciImageLoader.loadData(request, new CIImageLoadDataCallBack() {
          @Override
          public void onLoadData(byte[] bytes) {
              //伪代码给 imageview 设置 bytes 数据
              //imageview.setBytes(bytes);
          }
      
          @Override
          public void onFailure(QCloudClientException clientException, QCloudServiceException serviceException) {
      
          }
      });
目录