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

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

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

一、简介

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

二、步骤1:安装 SDK

使用 Gradle 集成

注意:说明:

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

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

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

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

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

三、构建 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);// 图片urlURL imageURL = request.getUrl();// header参数Map<String, List<String>> headers = 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>> headers = 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) { }});“`

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