简介
腾讯云对象存储(Cloud Object Storage,COS)集成了 数据万象(Cloud Infinite,CI)专业的一体化多媒体解决方案,涵盖以下图片处理功能,详情可见 图片处理概述。
服务 | 功能 | 说明 |
---|---|---|
基础图片处理服务 | 缩放 | 等比缩放、设定目标宽高缩放等多种方式 |
裁剪 | 普通裁剪、缩放裁剪、内切圆、人脸智能裁剪 | |
旋转 | 自适应旋转、普通旋转 | |
格式转换 | 格式转换、GIF 格式优化、渐进显示 | |
质量变换 | 针对 JPG 和 WEBP 图片进行质量变换 | |
高斯模糊 | 对图片进行模糊处理 | |
锐化 | 对图片进行锐化处理 | |
添加水印 | 图片水印、文字水印 | |
获取图片信息 | 基本信息、EXIF 信息、主色调 | |
去除元信息 | 包括 EXIF 信息 | |
快速缩略模板 | 快速实现图片格式转换、缩略、剪裁等功能,生成缩略图 |
基础图片处理
进行基础图片处理时,需要给定图片处理规则 rule,详情可见 图片处理概述。
所有示例代码请参见 SDK 基础图片处理示例。
部分示例如下:
缩放
String bucketName = "examplebucket-1250000000";
String key = "qrcode.png";
GetObjectRequest getObj = new GetObjectRequest(bucketName, key);
// 宽高缩放为原图的50%
String rule = "imageMogr2/thumbnail/!50p";
getObj.putCustomQueryParameter(rule, null);
cosClient.getObject(getObj, new File("qrcode-50p.png"));
裁剪
String bucketName = "examplebucket-1250000000";
String key = "qrcode.png";
GetObjectRequest getObj = new GetObjectRequest(bucketName, key);
// 裁剪内切圆的半径,取值范围为大于0且小于原图最小边一半的整数。内切圆的圆心为图片的中心
String rule = "imageMogr2/iradius/150";
getObj.putCustomQueryParameter(rule, null);
cosClient.getObject(getObj, new File("qrcode-cropping.png"));
旋转
String bucketName = "examplebucket-1250000000";
String key = "qrcode.png";
GetObjectRequest getObj = new GetObjectRequest(bucketName, key);
// 顺时针旋转90度
String rule = "imageMogr2/rotate/90";
getObj.putCustomQueryParameter(rule, null);
cosClient.getObject(getObj, new File("qrcode-rotate.png"));
获取主色调
String bucketName = "examplebucket-1250000000";
String key = "qrcode.png";
GetObjectRequest getObj = new GetObjectRequest(bucketName, key);
// 获取图片主色调
String rule = "imageAve";
COSObject object = cosClient.getObject(getObj);
COSObjectInputStream objectContent = object.getObjectContent();
获取图片基本信息
String bucketName = "examplebucket-1250000000";
String key = "qrcode.png";
GetObjectRequest getObj = new GetObjectRequest(bucketName, key);
// 图片基本信息
String rule = "imageInfo";
getObj.putCustomQueryParameter(rule, null);
COSObject object = cosClient.getObject(getObj);
COSObjectInputStream objectContent = object.getObjectContent();