图片极智压缩

最近更新时间:2025-11-05 16:02:22

我的收藏

简介

本文档提供关于数据万象图片极智压缩的相关 API 概览以及 SDK 示例代码。
注意:
该功能需要 COS Java SDK v5.6.257及以上版本。旧版本 SDK 该接口可能未覆盖或缺少更新参数,使用时建议升级到 最新版本
API
操作描述
极智压缩通过智能判断图片的主观质量进行自动调节,在不改变图片原格式的基础上,使图片体积相比原图有显著的降低,同时在视觉效果上可以最大程度贴近原图

下载时处理

下面示例展示了如何在下载图片时实现图片压缩。

示例代码

public static void downloadTimeImageSlim(COSClient client) {
String bucketName = "demo-1251704708";
String key = "test.png";

GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);
// 极智压缩规则
String compress = "imageSlim";
getObjectRequest.putCustomQueryParameter(compress, null);
client.getObject(getObjectRequest, new File("imageSilm.png"));
}

上传时处理

下面示例展示了如何在上传图片时自动实现图片压缩。
图片上传完成后,COS 会存储原始图片和已压缩过的图片。后续用户可以通过普通的下载请求获取处理结果。

示例代码

public static void uploadTimeImageSlim(COSClient client) {
// 1. 设置基础参数
String bucketName = "demo-1251704708";
String sourceKey = "/upload_source.jpg";
String targetKey = "/upload_slim.jpg";
File localFile = new File("test.png");
// 2. 创建上传请求
PutObjectRequest putRequest = new PutObjectRequest(bucketName, sourceKey, localFile);
// 3. 配置图片处理参数
PicOperations picOperations = new PicOperations();
picOperations.setIsPicInfo(1);
// 4. 设置处理规则
List<PicOperations.Rule> ruleList = new ArrayList<>();
PicOperations.Rule rule = new PicOperations.Rule();
rule.setBucket(bucketName);
rule.setFileId(targetKey);
// 极智压缩规则
rule.setRule("imageSlim");
ruleList.add(rule);
picOperations.setRules(ruleList);
putRequest.setPicOperations(picOperations);
// 5. 执行上传时处理
PutObjectResult putResult = client.putObject(putRequest);
CIUploadResult ciUploadResult = putResult.getCiUploadResult();
}

云上数据处理

下面示例展示了如何在对已存储在 COS 的图片进行相应压缩操作,并将结果存入到 COS。

示例代码

public static void cloudDataImageSlim(COSClient client) {
// 1. 设置基础参数
String bucketName = "demo-1251704708";
String sourceKey = "/cloud_source.jpg";
String targetKey = "/cloud_slim.jpg";
// 2. 创建云上处理请求
ImageProcessRequest imageReq = new ImageProcessRequest(bucketName, sourceKey);
// 3. 配置图片处理参数
PicOperations picOperations = new PicOperations();
picOperations.setIsPicInfo(1);
// 4. 设置处理规则
List<PicOperations.Rule> ruleList = new ArrayList<>();
PicOperations.Rule rule = new PicOperations.Rule();
rule.setBucket(bucketName);
rule.setFileId(targetKey);
// 极智压缩规则
rule.setRule("imageSlim");
ruleList.add(rule);
picOperations.setRules(ruleList);
imageReq.setPicOperations(picOperations);
// 5. 执行云上数据处理
CIUploadResult ciUploadResult = client.processImage(imageReq);
}