简介
本文档提供关于数据万象图片极智压缩的相关 API 概览以及 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);}